[jira] [Created] (MESOS-2086) Update messages.proto to use a raw bytestream instead of a string for AuthenticationStartMessage.

2014-11-12 Thread Till Toenshoff (JIRA)
Till Toenshoff created MESOS-2086:
-

 Summary: Update messages.proto to use a raw bytestream instead of 
a string for AuthenticationStartMessage.
 Key: MESOS-2086
 URL: https://issues.apache.org/jira/browse/MESOS-2086
 Project: Mesos
  Issue Type: Improvement
Reporter: Till Toenshoff
Assignee: Till Toenshoff


{{messages.proto}} has to be slightly changed to use a raw bytestream instead 
of a string for {{AuthenticationStartMessage}} as non CRAM-MD5 authentication 
mechanisms may transmit binary data.

*NOTE* that the above change does basically have no impact on C++ based proto 
code other than the prevention of a warning due to non-UTF8 characters being 
encoded.

For more on this subject, please see 
https://www.mail-archive.com/protobuf@googlegroups.com/msg01486.html

Even though the above is pretty much determining that we wont run into 
compatibility issues (old master vs. new slave and vice versa), it still should 
be tested briefly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-2086) Update messages.proto to use a raw bytestream instead of a string for AuthenticationStartMessage.

2014-11-12 Thread Till Toenshoff (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14207905#comment-14207905
 ] 

Till Toenshoff commented on MESOS-2086:
---

https://reviews.apache.org/r/27494/

 Update messages.proto to use a raw bytestream instead of a string for 
 AuthenticationStartMessage.
 -

 Key: MESOS-2086
 URL: https://issues.apache.org/jira/browse/MESOS-2086
 Project: Mesos
  Issue Type: Improvement
Reporter: Till Toenshoff
Assignee: Till Toenshoff

 {{messages.proto}} has to be slightly changed to use a raw bytestream instead 
 of a string for {{AuthenticationStartMessage}} as non CRAM-MD5 authentication 
 mechanisms may transmit binary data.
 *NOTE* that the above change does basically have no impact on C++ based proto 
 code other than the prevention of a warning due to non-UTF8 characters being 
 encoded.
 For more on this subject, please see 
 https://www.mail-archive.com/protobuf@googlegroups.com/msg01486.html
 Even though the above is pretty much determining that we wont run into 
 compatibility issues (old master vs. new slave and vice versa), it still 
 should be tested briefly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (MESOS-2086) Update messages.proto to use a raw bytestream instead of a string for AuthenticationStartMessage.

2014-11-12 Thread Till Toenshoff (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14207905#comment-14207905
 ] 

Till Toenshoff edited comment on MESOS-2086 at 11/12/14 10:36 AM:
--

https://reviews.apache.org/r/27494/ (change introduced)
https://reviews.apache.org/r/27675/ (change documented)


was (Author: tillt):
https://reviews.apache.org/r/27494/

 Update messages.proto to use a raw bytestream instead of a string for 
 AuthenticationStartMessage.
 -

 Key: MESOS-2086
 URL: https://issues.apache.org/jira/browse/MESOS-2086
 Project: Mesos
  Issue Type: Improvement
Reporter: Till Toenshoff
Assignee: Till Toenshoff

 {{messages.proto}} has to be slightly changed to use a raw bytestream instead 
 of a string for {{AuthenticationStartMessage}} as non CRAM-MD5 authentication 
 mechanisms may transmit binary data.
 *NOTE* that the above change does basically have no impact on C++ based proto 
 code other than the prevention of a warning due to non-UTF8 characters being 
 encoded.
 For more on this subject, please see 
 https://www.mail-archive.com/protobuf@googlegroups.com/msg01486.html
 Even though the above is pretty much determining that we wont run into 
 compatibility issues (old master vs. new slave and vice versa), it still 
 should be tested briefly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-2056) Refactor fetcher code in preparation for fetcher cache

2014-11-12 Thread Bernd Mathiske (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14207916#comment-14207916
 ] 

Bernd Mathiske commented on MESOS-2056:
---

This is somehow a continuation of MESOS-1316.

 Refactor fetcher code in preparation for fetcher cache
 --

 Key: MESOS-2056
 URL: https://issues.apache.org/jira/browse/MESOS-2056
 Project: Mesos
  Issue Type: Improvement
  Components: fetcher, slave
Reporter: Bernd Mathiske
Assignee: Bernd Mathiske
Priority: Minor
   Original Estimate: 72h
  Remaining Estimate: 72h

 Refactor/rearrange fetcher-related code so that cache functionality can be 
 dropped in. One could do both together in one go. This is splitting up 
 reviews into smaller chunks. It will not immediately be obvious how this 
 change will be used later, but it will look better-factored and still do the 
 exact same thing as before. In particular, a download routine to be reused 
 several times in launcher/fetcher will be factored out and the remainder of 
 fetcher-related code can be moved from the containerizer realm into 
 fetcher.cpp.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2087) Make libprocess support X-Mesos header on the receiving end

2014-11-12 Thread Dario Rexin (JIRA)
Dario Rexin created MESOS-2087:
--

 Summary: Make libprocess support X-Mesos header on the receiving 
end
 Key: MESOS-2087
 URL: https://issues.apache.org/jira/browse/MESOS-2087
 Project: Mesos
  Issue Type: Improvement
  Components: libprocess
Reporter: Dario Rexin
Priority: Minor


The changes proposed in https://issues.apache.org/jira/browse/MESOS-2071 are 
not supported by libprocess at the receiving end.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1486) Introduce an optional master whitelist for slaves

2014-11-12 Thread Alexander Rukletsov (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1486?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexander Rukletsov updated MESOS-1486:
---
Summary: Introduce an optional master whitelist for slaves  (was: Add 
authentication of masters in slaves.)

 Introduce an optional master whitelist for slaves
 -

 Key: MESOS-1486
 URL: https://issues.apache.org/jira/browse/MESOS-1486
 Project: Mesos
  Issue Type: Improvement
  Components: slave
Reporter: Niklas Quarfot Nielsen

 Like masters can whitelist slaves (and only announce available resources from 
 slaves whitelisted), slaves should be able to whitelist masters they are 
 willing/allowed to connect to. I have a proof-of-concept ready which ties 
 into the slave::detected() method and prevents non-whitelisted masters to 
 register.
 If * is provided - whitelisting is not enforced (which would be the usual 
 case).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2088) relative dates are parsed incorrectly.

2014-11-12 Thread Adam Shannon (JIRA)
Adam Shannon created MESOS-2088:
---

 Summary: relative dates are parsed incorrectly.
 Key: MESOS-2088
 URL: https://issues.apache.org/jira/browse/MESOS-2088
 Project: Mesos
  Issue Type: Bug
  Components: webui
Affects Versions: 0.20.1
Reporter: Adam Shannon


The relative-date library seems to be parsing dates without regard to the 
timezone in the iso 8601 timestamp.

I found this file that seems to be responsible for this.

https://github.com/apache/mesos/blob/master/src/webui/master/static/js/relative-date.js

I would recommend using a different library that will handle this properly. 

http://momentjs.com/docs/#/parsing/string/



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-1486) Introduce an optional master whitelist for slaves

2014-11-12 Thread Alexander Rukletsov (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-1486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14208225#comment-14208225
 ] 

Alexander Rukletsov commented on MESOS-1486:


A follow-up on this issue. We would like to authorize (not authenticate) 
masters in slaves. For example, if a new (rogue) master becomes a leader, a 
slave checks it against its list of whitelisted masters and refuses to 
communicate with it if it is not authorized. As a short-term solution, we can 
use a mechanism similar to slave whitelisting in master, which will be 
[deprecated in favour of 
ACLs|https://issues.apache.org/jira/browse/MESOS-2089]. In a long run, this 
feature should resemble 
[MESOS-1546|https://issues.apache.org/jira/browse/MESOS-1546]. 

 Introduce an optional master whitelist for slaves
 -

 Key: MESOS-1486
 URL: https://issues.apache.org/jira/browse/MESOS-1486
 Project: Mesos
  Issue Type: Improvement
  Components: slave
Reporter: Niklas Quarfot Nielsen

 Like masters can whitelist slaves (and only announce available resources from 
 slaves whitelisted), slaves should be able to whitelist masters they are 
 willing/allowed to connect to. I have a proof-of-concept ready which ties 
 into the slave::detected() method and prevents non-whitelisted masters to 
 register.
 If * is provided - whitelisting is not enforced (which would be the usual 
 case).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2090) Introduce trackable JSON-based flags

2014-11-12 Thread Alexander Rukletsov (JIRA)
Alexander Rukletsov created MESOS-2090:
--

 Summary: Introduce trackable JSON-based flags
 Key: MESOS-2090
 URL: https://issues.apache.org/jira/browse/MESOS-2090
 Project: Mesos
  Issue Type: Task
Reporter: Alexander Rukletsov


Some flags represent configuration that may change over time, e.g. 
{{--whitelist}} master flag. Such flags mostly contain JSON formatted data. 
Provide a common mechanism to facilitate tracking changes and reloading the 
flag value.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1694) Future::failure should return a const string

2014-11-12 Thread Vinod Kone (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vinod Kone updated MESOS-1694:
--
Story Points: 1

 Future::failure should return a const string
 -

 Key: MESOS-1694
 URL: https://issues.apache.org/jira/browse/MESOS-1694
 Project: Mesos
  Issue Type: Task
  Components: technical debt
Reporter: Dominic Hamon
Assignee: Dominic Hamon
Priority: Minor
  Labels: newbie
 Fix For: 0.22.0






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2093) Allow live-updating credential/s on a running master/slave/framework.

2014-11-12 Thread Till Toenshoff (JIRA)
Till Toenshoff created MESOS-2093:
-

 Summary: Allow live-updating credential/s on a running 
master/slave/framework.
 Key: MESOS-2093
 URL: https://issues.apache.org/jira/browse/MESOS-2093
 Project: Mesos
  Issue Type: Improvement
Reporter: Till Toenshoff


For improving a transition from/to an authenticated slave/framework or changes 
within principal/s and/or password/s, we would have to permanently watch a 
given credential/s file and allow the authentication logic to get re-triggered 
by any changes on these files on both ends (slave/framework and master).

There are likely subtasks involved and hence this JIRA might get converted into 
an EPIC once this improvement should get implemented (if at all).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2094) Libprocess: Introduce make_shared

2014-11-12 Thread Joris Van Remoortere (JIRA)
Joris Van Remoortere created MESOS-2094:
---

 Summary: Libprocess: Introduce make_shared
 Key: MESOS-2094
 URL: https://issues.apache.org/jira/browse/MESOS-2094
 Project: Mesos
  Issue Type: Improvement
  Components: libprocess
Reporter: Joris Van Remoortere
Assignee: Joris Van Remoortere


add make_shared to the configure check




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2095) Introduce make_shared

2014-11-12 Thread Joris Van Remoortere (JIRA)
Joris Van Remoortere created MESOS-2095:
---

 Summary: Introduce make_shared
 Key: MESOS-2095
 URL: https://issues.apache.org/jira/browse/MESOS-2095
 Project: Mesos
  Issue Type: Improvement
Reporter: Joris Van Remoortere
Assignee: Joris Van Remoortere


add make_shared to the configure check



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-2095) Introduce make_shared

2014-11-12 Thread Joris Van Remoortere (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-2095?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14208580#comment-14208580
 ] 

Joris Van Remoortere commented on MESOS-2095:
-

https://reviews.apache.org/r/27921/

 Introduce make_shared
 -

 Key: MESOS-2095
 URL: https://issues.apache.org/jira/browse/MESOS-2095
 Project: Mesos
  Issue Type: Improvement
Reporter: Joris Van Remoortere
Assignee: Joris Van Remoortere

 add make_shared to the configure check



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2086) Update messages.proto to use a raw bytestream instead of a string for AuthenticationStartMessage.

2014-11-12 Thread Adam B (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adam B updated MESOS-2086:
--
Shepherd: Adam B

 Update messages.proto to use a raw bytestream instead of a string for 
 AuthenticationStartMessage.
 -

 Key: MESOS-2086
 URL: https://issues.apache.org/jira/browse/MESOS-2086
 Project: Mesos
  Issue Type: Improvement
Reporter: Till Toenshoff
Assignee: Till Toenshoff

 {{messages.proto}} has to be slightly changed to use a raw bytestream instead 
 of a string for {{AuthenticationStartMessage}} as non CRAM-MD5 authentication 
 mechanisms may transmit binary data.
 *NOTE* that the above change does basically have no impact on C++ based proto 
 code other than the prevention of a warning due to non-UTF8 characters being 
 encoded.
 For more on this subject, please see 
 https://www.mail-archive.com/protobuf@googlegroups.com/msg01486.html
 Even though the above is pretty much determining that we wont run into 
 compatibility issues (old master vs. new slave and vice versa), it still 
 should be tested briefly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2096) Allow Mesos modules to be built outside the Mesos source tree

2014-11-12 Thread Kapil Arya (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kapil Arya updated MESOS-2096:
--
Description: 
We want to be able to provide a mechanism to allow third parties to build Mesos 
modules outside the Mesos source tree.  Ideally, we would want to build Mesos 
modules without the need to build Mesos itself, provided that the public 
headers and corresponding shared libraries are available.

Building a Mesos module requires access to the following components:
1. stout headers
2. libprocess headers and corresponding dynamic libraries (current, just 
libmesos.so)
3. protobufs
4. glog
5. gmock/gtest (optional)
6. boost

Of the above components, stout headers and libprocess headers are already 
installed as part of standard Mesos installation.

The problem lies with the bundled packages such as protobufs.  It is the 
understanding that Mesos modules should be built with the same version of these 
packages with which Mesos was built.  Since Mesos may have used the bundled 
versions, there is no way to build a module without having access to the Mesos 
source tree and the build directory.

Having access to the source and build directory solves only part of the 
problem.  The module build system needs to be aware of the configure parameters 
that were used for building Mesos (and accordingly, the bundled packages).  A 
hackish solution is to force Mesos build system to emit the necessary 
information in a format that can be consumed by the module build system.

A better solution is to remove the bundled packages -- protobuf, gmock, boost, 
and glog -- from the Mesos distribution and instead rely on system provided 
packages.  Since these packages are usually available on most distros, we just 
need to do a  configure check in Mesos and fail if they are not installed.

Once these dependencies are resolved, we can export the header files defining 
module kinds such as  isolator.hpp, authenticator.hpp, etc.  At this point, 
there won't any known blockers that could prevent building modules out of Mesos 
tree.

  was:
We want to be able to provide a mechanism to allow third parties to build Mesos 
modules outside the Mesos source tree.  Ideally, we would want to build Mesos 
modules without the need to build Mesos itself, provided that the public 
headers and corresponding shared libraries are available.

Building a Mesos module requires access to the following components:
1. stout headers
2. libprocess headers and corresponding dynamic libraries (current, just 
libmesos.so)
3. protobufs
4. glog
5. gmock/gtest (optional)
6. boost

Of the above components, stout headers and libprocess headers are already 
installed as part of standard Mesos installation.

The problem lies with the bundled versions of protobufs, etc.  It is the 
understanding that Mesos modules should be built with the same version of these 
packages with which Mesos was built.  Since Mesos may have used the bundled 
versions, there is no way to build a module without having access to Mesos 
source tree and the build directory.

Having access to the build directory solves only part of the problem.  The 
module build system needs to be aware of the bundled packages that were used 
for building Mesos.  A hackish solution is to force Mesos build system to emit 
the necessary information in a format that can be consumed by the module build 
system.

A better solution is to remove the bundled packages protobuf, gmock, boost, and 
glog from Mesos distribution and instead rely on system provided packages.  
Since these packages are usually available on most distros, we just need to do 
a  configure check in Mesos and fail if they are not installed.

Once these dependencies are resolved, we can export the file defining module 
kinds such as  isolator.hpp, authenticator.hpp, etc.  At this point, there 
won't any known blockers that could prevent building modules out of Mesos tree.


 Allow Mesos modules to be built outside the Mesos source tree
 -

 Key: MESOS-2096
 URL: https://issues.apache.org/jira/browse/MESOS-2096
 Project: Mesos
  Issue Type: Bug
Reporter: Kapil Arya
Priority: Blocker

 We want to be able to provide a mechanism to allow third parties to build 
 Mesos modules outside the Mesos source tree.  Ideally, we would want to build 
 Mesos modules without the need to build Mesos itself, provided that the 
 public headers and corresponding shared libraries are available.
 Building a Mesos module requires access to the following components:
 1. stout headers
 2. libprocess headers and corresponding dynamic libraries (current, just 
 libmesos.so)
 3. protobufs
 4. glog
 5. gmock/gtest (optional)
 6. boost
 Of the above components, stout headers and libprocess headers are already 
 installed as part of standard 

[jira] [Updated] (MESOS-1912) Decouple libev from clock implementation

2014-11-12 Thread Niklas Quarfot Nielsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Niklas Quarfot Nielsen updated MESOS-1912:
--
Sprint: Mesosphere Q4 Sprint 2 - 11/14

 Decouple libev from clock implementation
 

 Key: MESOS-1912
 URL: https://issues.apache.org/jira/browse/MESOS-1912
 Project: Mesos
  Issue Type: Task
Reporter: Niklas Quarfot Nielsen
Assignee: Benjamin Hindman





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1912) Decouple libev from clock implementation

2014-11-12 Thread Niklas Quarfot Nielsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Niklas Quarfot Nielsen updated MESOS-1912:
--
Assignee: Benjamin Hindman

 Decouple libev from clock implementation
 

 Key: MESOS-1912
 URL: https://issues.apache.org/jira/browse/MESOS-1912
 Project: Mesos
  Issue Type: Task
Reporter: Niklas Quarfot Nielsen
Assignee: Benjamin Hindman





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2042) Authenticatee Module: Integrate authenticatee module in scheduler

2014-11-12 Thread Till Toenshoff (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Till Toenshoff updated MESOS-2042:
--
Sprint: Mesosphere Q4 Sprint 2 - 11/14

 Authenticatee Module: Integrate authenticatee module in scheduler
 -

 Key: MESOS-2042
 URL: https://issues.apache.org/jira/browse/MESOS-2042
 Project: Mesos
  Issue Type: Improvement
  Components: modules
Reporter: Till Toenshoff
Assignee: Till Toenshoff

 Allow for frameworks to use the authenticatee module.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1894) Authenticator Module: Tests

2014-11-12 Thread Till Toenshoff (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Till Toenshoff updated MESOS-1894:
--
Target Version/s: 0.22.0

 Authenticator Module: Tests
 ---

 Key: MESOS-1894
 URL: https://issues.apache.org/jira/browse/MESOS-1894
 Project: Mesos
  Issue Type: Improvement
  Components: modules
Reporter: Till Toenshoff
Assignee: Till Toenshoff
Priority: Blocker

 h4. Motivation
 Make sure that an authenticator module can be fully unit- and integration- 
 tested within the mesos test suite.
 h4. Status Quo
 We currently have a few CRAM-MD5 specific authentication integration tests ( 
 {{tests/sasl_tests.cpp}} ) as well as a complete authentication test list for 
 authentication as a whole with some CRAM-MD5 specifics again ( 
 {{tests/authentication.cpp}} ). 
 h4. Approach
 1. MESOS-1864 needs to get fleshed out, providing a module integration test 
 scheme for our mesos test suite
 2. refactor / move / rename integration tests of the CRAM-MD5 specific tests 
 {{tests/sasl_tests.cpp}}  {{tests/authentication.cpp}}
 3. implement tests via a parameterized version of {{tests/authentication.cpp}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1974) Update the C++ Resources abstraction for DiskInfo

2014-11-12 Thread Jie Yu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1974?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jie Yu updated MESOS-1974:
--
Description: 
WeThe existing C++ 'Resources' interfaces are poorly designed. Some of them are 
confusing and unintuitive. Some of them are overloaded with too many 
functionalities. For instance,

{noformat}
bool operator = (const Resource left, const Resource right);
{noformat}

This interface in non-intuitive because A = B doesn't imply !(B = A).

{noformat}
Resource operator + (const Resource left, const Resource right);
{noformat}

This one is also non-intuitive because if 'left' is not compatible with 
'right', the result is 'left' (why not right???). Similar for operator '-'.

{noformat}
OptionResource Resources::get(const Resource r) const;
{noformat}

This one assume Resources is flattened, but it might not be.

As we start to introduce persistent disk resources (MESOS-1554), things will 
get more complicated. For example, one may want to get two types of 'disk()' 
functions: one returns the ephemeral disk bytes (with no disk info), one 
returns the total disk bytes (including ones that have disk info). We may wanna 
introduce a concept about Resource that indicates that a resource cannot be 
merged or split (e.g., atomic?).

Since we need to change this class anyway. I wanna take this chance to refactor 
it.

  was:
The existing C++ 'Resources' interfaces are poorly designed. Some of them are 
confusing and unintuitive. Some of them are overloaded with too many 
functionalities. For instance,

{noformat}
bool operator = (const Resource left, const Resource right);
{noformat}

This interface in non-intuitive because A = B doesn't imply !(B = A).

{noformat}
Resource operator + (const Resource left, const Resource right);
{noformat}

This one is also non-intuitive because if 'left' is not compatible with 
'right', the result is 'left' (why not right???). Similar for operator '-'.

{noformat}
OptionResource Resources::get(const Resource r) const;
{noformat}

This one assume Resources is flattened, but it might not be.

As we start to introduce persistent disk resources (MESOS-1554), things will 
get more complicated. For example, one may want to get two types of 'disk()' 
functions: one returns the ephemeral disk bytes (with no disk info), one 
returns the total disk bytes (including ones that have disk info). We may wanna 
introduce a concept about Resource that indicates that a resource cannot be 
merged or split (e.g., atomic?).

Since we need to change this class anyway. I wanna take this chance to refactor 
it.


 Update the C++ Resources abstraction for DiskInfo
 -

 Key: MESOS-1974
 URL: https://issues.apache.org/jira/browse/MESOS-1974
 Project: Mesos
  Issue Type: Improvement
Reporter: Jie Yu
Assignee: Jie Yu

 WeThe existing C++ 'Resources' interfaces are poorly designed. Some of them 
 are confusing and unintuitive. Some of them are overloaded with too many 
 functionalities. For instance,
 {noformat}
 bool operator = (const Resource left, const Resource right);
 {noformat}
 This interface in non-intuitive because A = B doesn't imply !(B = A).
 {noformat}
 Resource operator + (const Resource left, const Resource right);
 {noformat}
 This one is also non-intuitive because if 'left' is not compatible with 
 'right', the result is 'left' (why not right???). Similar for operator '-'.
 {noformat}
 OptionResource Resources::get(const Resource r) const;
 {noformat}
 This one assume Resources is flattened, but it might not be.
 As we start to introduce persistent disk resources (MESOS-1554), things will 
 get more complicated. For example, one may want to get two types of 'disk()' 
 functions: one returns the ephemeral disk bytes (with no disk info), one 
 returns the total disk bytes (including ones that have disk info). We may 
 wanna introduce a concept about Resource that indicates that a resource 
 cannot be merged or split (e.g., atomic?).
 Since we need to change this class anyway. I wanna take this chance to 
 refactor it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1974) Update the C++ Resources abstraction for DiskInfo

2014-11-12 Thread Jie Yu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1974?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jie Yu updated MESOS-1974:
--
Summary: Update the C++ Resources abstraction for DiskInfo  (was: Refactor 
the C++ 'Resources' abstraction.)

 Update the C++ Resources abstraction for DiskInfo
 -

 Key: MESOS-1974
 URL: https://issues.apache.org/jira/browse/MESOS-1974
 Project: Mesos
  Issue Type: Improvement
Reporter: Jie Yu
Assignee: Jie Yu

 The existing C++ 'Resources' interfaces are poorly designed. Some of them are 
 confusing and unintuitive. Some of them are overloaded with too many 
 functionalities. For instance,
 {noformat}
 bool operator = (const Resource left, const Resource right);
 {noformat}
 This interface in non-intuitive because A = B doesn't imply !(B = A).
 {noformat}
 Resource operator + (const Resource left, const Resource right);
 {noformat}
 This one is also non-intuitive because if 'left' is not compatible with 
 'right', the result is 'left' (why not right???). Similar for operator '-'.
 {noformat}
 OptionResource Resources::get(const Resource r) const;
 {noformat}
 This one assume Resources is flattened, but it might not be.
 As we start to introduce persistent disk resources (MESOS-1554), things will 
 get more complicated. For example, one may want to get two types of 'disk()' 
 functions: one returns the ephemeral disk bytes (with no disk info), one 
 returns the total disk bytes (including ones that have disk info). We may 
 wanna introduce a concept about Resource that indicates that a resource 
 cannot be merged or split (e.g., atomic?).
 Since we need to change this class anyway. I wanna take this chance to 
 refactor it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-1974) Update the C++ Resources abstraction for DiskInfo

2014-11-12 Thread Jie Yu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1974?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jie Yu updated MESOS-1974:
--
Description: 
As we introduce DiskInfo and reservation for Resource. We need to change the 
C++ Resources abstraction to properly deal with merge/split of resources with 
those additional fields.

Also, the existing C++ 'Resources' interfaces are poorly designed. Some of them 
are confusing and unintuitive. Some of them are overloaded with too many 
functionalities. For instance,

{noformat}
bool operator = (const Resource left, const Resource right);
{noformat}

This interface in non-intuitive because A = B doesn't imply !(B = A).

{noformat}
Resource operator + (const Resource left, const Resource right);
{noformat}

This one is also non-intuitive because if 'left' is not compatible with 
'right', the result is 'left' (why not right???). Similar for operator '-'.

{noformat}
OptionResource Resources::get(const Resource r) const;
{noformat}

This one assume Resources is flattened, but it might not be.

As we start to introduce persistent disk resources (MESOS-1554), things will 
get more complicated. For example, one may want to get two types of 'disk()' 
functions: one returns the ephemeral disk bytes (with no disk info), one 
returns the total disk bytes (including ones that have disk info). We may wanna 
introduce a concept about Resource that indicates that a resource cannot be 
merged or split (e.g., atomic?).

Since we need to change this class anyway. I wanna take this chance to refactor 
it.

  was:
WeThe existing C++ 'Resources' interfaces are poorly designed. Some of them are 
confusing and unintuitive. Some of them are overloaded with too many 
functionalities. For instance,

{noformat}
bool operator = (const Resource left, const Resource right);
{noformat}

This interface in non-intuitive because A = B doesn't imply !(B = A).

{noformat}
Resource operator + (const Resource left, const Resource right);
{noformat}

This one is also non-intuitive because if 'left' is not compatible with 
'right', the result is 'left' (why not right???). Similar for operator '-'.

{noformat}
OptionResource Resources::get(const Resource r) const;
{noformat}

This one assume Resources is flattened, but it might not be.

As we start to introduce persistent disk resources (MESOS-1554), things will 
get more complicated. For example, one may want to get two types of 'disk()' 
functions: one returns the ephemeral disk bytes (with no disk info), one 
returns the total disk bytes (including ones that have disk info). We may wanna 
introduce a concept about Resource that indicates that a resource cannot be 
merged or split (e.g., atomic?).

Since we need to change this class anyway. I wanna take this chance to refactor 
it.


 Update the C++ Resources abstraction for DiskInfo
 -

 Key: MESOS-1974
 URL: https://issues.apache.org/jira/browse/MESOS-1974
 Project: Mesos
  Issue Type: Improvement
Reporter: Jie Yu
Assignee: Jie Yu

 As we introduce DiskInfo and reservation for Resource. We need to change the 
 C++ Resources abstraction to properly deal with merge/split of resources with 
 those additional fields.
 Also, the existing C++ 'Resources' interfaces are poorly designed. Some of 
 them are confusing and unintuitive. Some of them are overloaded with too many 
 functionalities. For instance,
 {noformat}
 bool operator = (const Resource left, const Resource right);
 {noformat}
 This interface in non-intuitive because A = B doesn't imply !(B = A).
 {noformat}
 Resource operator + (const Resource left, const Resource right);
 {noformat}
 This one is also non-intuitive because if 'left' is not compatible with 
 'right', the result is 'left' (why not right???). Similar for operator '-'.
 {noformat}
 OptionResource Resources::get(const Resource r) const;
 {noformat}
 This one assume Resources is flattened, but it might not be.
 As we start to introduce persistent disk resources (MESOS-1554), things will 
 get more complicated. For example, one may want to get two types of 'disk()' 
 functions: one returns the ephemeral disk bytes (with no disk info), one 
 returns the total disk bytes (including ones that have disk info). We may 
 wanna introduce a concept about Resource that indicates that a resource 
 cannot be merged or split (e.g., atomic?).
 Since we need to change this class anyway. I wanna take this chance to 
 refactor it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2097) Update Resource protobuf with DiskInfo

2014-11-12 Thread Jie Yu (JIRA)
Jie Yu created MESOS-2097:
-

 Summary: Update Resource protobuf with DiskInfo
 Key: MESOS-2097
 URL: https://issues.apache.org/jira/browse/MESOS-2097
 Project: Mesos
  Issue Type: Task
Reporter: Jie Yu


{noformat}
message Resource {
  required string name = 1;
  required Value.Type type = 2;
  optional Value.Scalar scalar = 3;
  optional Value.Ranges ranges = 4;
  optional Value.Set set = 5;
  optional string role = 6 [default = *];

  // Used for describing persistent disk resource.
  message DiskInfo {
// A unique identifier for the persistent disk resource. The id
// needs to be unique within a role for a slave.
required string id = 1;

// The volume mapping for the persistent disk resource.
required Volume volume = 2;
  }

  optional DiskInfo disk = 8;
}
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2098) Update task validation to be after task authorization.

2014-11-12 Thread Jie Yu (JIRA)
Jie Yu created MESOS-2098:
-

 Summary: Update task validation to be after task authorization.
 Key: MESOS-2098
 URL: https://issues.apache.org/jira/browse/MESOS-2098
 Project: Mesos
  Issue Type: Task
Reporter: Jie Yu


So that we can simply the task validation because we no longer need to check 
with pendingTasks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2030) Maintain persistent disk resources in master memory.

2014-11-12 Thread Jie Yu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2030?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jie Yu updated MESOS-2030:
--
 Component/s: master
 Description: Maintain an in-memory data structure to track persistent disk 
resources on each slave. Update this data structure when slaves 
register/re-register/disconnect, etc.  (was: We need to do the following in 
master in order to support persistent disk resource:
1) Add an API allowing the framework to release a persistent disk resource.
2) Maintain an in-memory data structure to track persistent disk resources on 
each slave. Update this data structure when slaves 
register/re-register/disconnect, etc.
3) Relay releasing of persistent disk resource to the corresponding slave 
according to the data structure maintained in 2))
  Labels: twitter  (was: )
Story Points: 3  (was: 5)
 Summary: Maintain persistent disk resources in master memory.  (was: 
Support persistent disk resource in master.)

 Maintain persistent disk resources in master memory.
 

 Key: MESOS-2030
 URL: https://issues.apache.org/jira/browse/MESOS-2030
 Project: Mesos
  Issue Type: Task
  Components: master
Reporter: Jie Yu
Assignee: Jie Yu
  Labels: twitter

 Maintain an in-memory data structure to track persistent disk resources on 
 each slave. Update this data structure when slaves 
 register/re-register/disconnect, etc.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2099) Support acquiring/releasing resources with DiskInfo in allocator.

2014-11-12 Thread Jie Yu (JIRA)
Jie Yu created MESOS-2099:
-

 Summary: Support acquiring/releasing resources with DiskInfo in 
allocator.
 Key: MESOS-2099
 URL: https://issues.apache.org/jira/browse/MESOS-2099
 Project: Mesos
  Issue Type: Task
  Components: allocation
Reporter: Jie Yu


The allocator needs to be changed because the resources are changing while we 
acquiring or releasing persistent disk resources (resources with DiskInfo). For 
example, when we release a persistent disk resource, we are changing the 
release with DiskInfo to a resource with the DiskInfo.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (MESOS-1902) Support persistent disk resource.

2014-11-12 Thread Benjamin Mahler (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Mahler closed MESOS-1902.
--
Resolution: Duplicate

 Support persistent disk resource.
 -

 Key: MESOS-1902
 URL: https://issues.apache.org/jira/browse/MESOS-1902
 Project: Mesos
  Issue Type: Task
Reporter: Jie Yu

 Mesos needs to provide a way to allow tasks to write persistent data which 
 won’t be garbage collected. For example, a task can write its persistent data 
 to some predefined directory. When this task finishes, the framework can 
 launch a new task which is able to access the persistent data written by the 
 previous task which Mesos would have usually garbage-collected.
 One way to achieve that is to provide a new type of disk resources which are 
 persistent. We call it persistent disk resource. When a framework launches a 
 task using persistent disk resources, the data the task writes will be 
 persisted. When the framework launches a new task using the same persistent 
 disk resource (after the previous task finishes), the new task will be able 
 to access the data written by the previous task.
 The persistent disk resource should be able to survive slave reboot or slave 
 info/id change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (MESOS-2097) Update Resource protobuf with DiskInfo

2014-11-12 Thread Jie Yu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jie Yu reassigned MESOS-2097:
-

Assignee: Jie Yu

 Update Resource protobuf with DiskInfo
 --

 Key: MESOS-2097
 URL: https://issues.apache.org/jira/browse/MESOS-2097
 Project: Mesos
  Issue Type: Task
Reporter: Jie Yu
Assignee: Jie Yu

 {noformat}
 message Resource {
   required string name = 1;
   required Value.Type type = 2;
   optional Value.Scalar scalar = 3;
   optional Value.Ranges ranges = 4;
   optional Value.Set set = 5;
   optional string role = 6 [default = *];
   // Used for describing persistent disk resource.
   message DiskInfo {
 // A unique identifier for the persistent disk resource. The id
 // needs to be unique within a role for a slave.
 required string id = 1;
 // The volume mapping for the persistent disk resource.
 required Volume volume = 2;
   }
   optional DiskInfo disk = 8;
 }
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (MESOS-2100) Implement master to slave protocol for persistent disk resources.

2014-11-12 Thread Jie Yu (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-2100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jie Yu updated MESOS-2100:
--
Story Points: 8  (was: 5)

 Implement master to slave protocol for persistent disk resources.
 -

 Key: MESOS-2100
 URL: https://issues.apache.org/jira/browse/MESOS-2100
 Project: Mesos
  Issue Type: Task
  Components: master, slave
Reporter: Jie Yu
  Labels: twitter

 We need to do the following:
 1) Slave needs to send persisted resources when registering (or 
 re-registering).
 2) Master needs to send total persisted resources to slave by either re-using 
 RunTask/UpdateFrameworkInfo or introduce new type of messages (like 
 UpdateResources).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2100) Implement master to slave protocol for persistent disk resources.

2014-11-12 Thread Jie Yu (JIRA)
Jie Yu created MESOS-2100:
-

 Summary: Implement master to slave protocol for persistent disk 
resources.
 Key: MESOS-2100
 URL: https://issues.apache.org/jira/browse/MESOS-2100
 Project: Mesos
  Issue Type: Task
  Components: master, slave
Reporter: Jie Yu


We need to do the following:
1) Slave needs to send persisted resources when registering (or re-registering).
2) Master needs to send total persisted resources to slave by either re-using 
RunTask/UpdateFrameworkInfo or introduce new type of messages (like 
UpdateResources).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (MESOS-1902) Support persistent disk resource.

2014-11-12 Thread Benjamin Mahler (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Mahler reopened MESOS-1902:

  Assignee: (was: Jie Yu)

 Support persistent disk resource.
 -

 Key: MESOS-1902
 URL: https://issues.apache.org/jira/browse/MESOS-1902
 Project: Mesos
  Issue Type: Task
Reporter: Jie Yu

 Mesos needs to provide a way to allow tasks to write persistent data which 
 won’t be garbage collected. For example, a task can write its persistent data 
 to some predefined directory. When this task finishes, the framework can 
 launch a new task which is able to access the persistent data written by the 
 previous task which Mesos would have usually garbage-collected.
 One way to achieve that is to provide a new type of disk resources which are 
 persistent. We call it persistent disk resource. When a framework launches a 
 task using persistent disk resources, the data the task writes will be 
 persisted. When the framework launches a new task using the same persistent 
 disk resource (after the previous task finishes), the new task will be able 
 to access the data written by the previous task.
 The persistent disk resource should be able to survive slave reboot or slave 
 info/id change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (MESOS-2101) Add the persistent resources release primitive to the framework API

2014-11-12 Thread Jie Yu (JIRA)
Jie Yu created MESOS-2101:
-

 Summary: Add the persistent resources release primitive to the 
framework API
 Key: MESOS-2101
 URL: https://issues.apache.org/jira/browse/MESOS-2101
 Project: Mesos
  Issue Type: Task
Reporter: Jie Yu


We are thinking about introducing a Release protobuf message which specifies 
persistent disk resources (w/ DiskInfo) to release. The Release message could 
be piggybacked on the Launch/Decline message.

This probably will overlap with the dynamic reservation work (MESOS-2018).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (MESOS-1902) Support persistent disk resource.

2014-11-12 Thread Benjamin Mahler (JIRA)

 [ 
https://issues.apache.org/jira/browse/MESOS-1902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Mahler reopened MESOS-1902:

  Assignee: (was: Jie Yu)

 Support persistent disk resource.
 -

 Key: MESOS-1902
 URL: https://issues.apache.org/jira/browse/MESOS-1902
 Project: Mesos
  Issue Type: Task
Reporter: Jie Yu

 Mesos needs to provide a way to allow tasks to write persistent data which 
 won’t be garbage collected. For example, a task can write its persistent data 
 to some predefined directory. When this task finishes, the framework can 
 launch a new task which is able to access the persistent data written by the 
 previous task which Mesos would have usually garbage-collected.
 One way to achieve that is to provide a new type of disk resources which are 
 persistent. We call it persistent disk resource. When a framework launches a 
 task using persistent disk resources, the data the task writes will be 
 persisted. When the framework launches a new task using the same persistent 
 disk resource (after the previous task finishes), the new task will be able 
 to access the data written by the previous task.
 The persistent disk resource should be able to survive slave reboot or slave 
 info/id change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)