From 6330e04d165db37610338652a530f09cd32592b6 Mon Sep 17 00:00:00 2001 From: georgepachitariu Date: Tue, 10 Mar 2020 17:00:21 +0100 Subject: [PATCH 1/8] Adding HiveServer Credential Provider --- java/pom.xml | 24 + java/skein.iml | 208 + .../main/java/com/anaconda/skein/Driver.java | 95 +- .../main/java/com/anaconda/skein/Model.java | 13 +- .../java/com/anaconda/skein/MsgUtils.java | 17 +- .../skein/credentials/CredentialProvider.java | 9 + .../skein/credentials/HdfsCredentials.java | 71 + .../skein/credentials/HiveCredentials.java | 68 + java/src/main/proto/skein.proto | 14 +- skein/__init__.py | 2 +- skein/model.py | 81 +- skein/proto/__init__.py | 6 +- skein/test/test_kv.py | 2 +- skein/test/test_model.py | 14 +- test/skein_pb2.py | 4402 +++++++++++++++++ 15 files changed, 4937 insertions(+), 89 deletions(-) create mode 100644 java/skein.iml create mode 100644 java/src/main/java/com/anaconda/skein/credentials/CredentialProvider.java create mode 100644 java/src/main/java/com/anaconda/skein/credentials/HdfsCredentials.java create mode 100644 java/src/main/java/com/anaconda/skein/credentials/HiveCredentials.java create mode 100644 test/skein_pb2.py diff --git a/java/pom.xml b/java/pom.xml index 88571ce5..b16c0c84 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -13,6 +13,7 @@ 2.0.17.Final 9.2.10.v20150310 2.7.2 + 2.1.1 UNKNOWN @@ -60,6 +61,9 @@ *:* META-INF/maven/** + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA google/** skein.proto @@ -390,6 +394,26 @@ provided + + org.apache.hive + hive-jdbc + ${hiveVersion} + + + org.apache.hadoop + hadoop-hdfs + + + org.apache.hive + hive-llap-server + + + org.apache.hbase + hbase-client + + + + junit diff --git a/java/skein.iml b/java/skein.iml new file mode 100644 index 00000000..8e9be239 --- /dev/null +++ b/java/skein.iml @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java/src/main/java/com/anaconda/skein/Driver.java b/java/src/main/java/com/anaconda/skein/Driver.java index 9010d9b4..b967c516 100644 --- a/java/src/main/java/com/anaconda/skein/Driver.java +++ b/java/src/main/java/com/anaconda/skein/Driver.java @@ -1,7 +1,8 @@ package com.anaconda.skein; +import com.anaconda.skein.credentials.CredentialProvider; +import com.anaconda.skein.credentials.HdfsCredentials; import com.google.common.base.Strings; -import com.google.common.collect.ObjectArrays; import com.google.protobuf.ByteString; import io.grpc.Server; @@ -21,12 +22,8 @@ import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.permission.FsPermission; import org.apache.hadoop.io.DataOutputBuffer; -import org.apache.hadoop.io.Text; -import org.apache.hadoop.mapreduce.security.TokenCache; import org.apache.hadoop.security.Credentials; import org.apache.hadoop.security.UserGroupInformation; -import org.apache.hadoop.security.token.Token; -import org.apache.hadoop.security.token.TokenIdentifier; import org.apache.hadoop.yarn.api.ApplicationConstants.Environment; import org.apache.hadoop.yarn.api.ApplicationConstants; import org.apache.hadoop.yarn.api.records.ApplicationAccessType; @@ -43,33 +40,23 @@ import org.apache.hadoop.yarn.api.records.QueueInfo; import org.apache.hadoop.yarn.api.records.URL; import org.apache.hadoop.yarn.api.records.YarnApplicationState; -import org.apache.hadoop.yarn.client.ClientRMProxy; import org.apache.hadoop.yarn.client.api.YarnClient; import org.apache.hadoop.yarn.client.api.YarnClientApplication; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.exceptions.YarnException; -import org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier; import org.apache.hadoop.yarn.util.ConverterUtils; import org.apache.log4j.Level; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.DataOutputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; import java.net.InetSocketAddress; import java.net.Socket; import java.nio.ByteBuffer; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.PrivilegedExceptionAction; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.ThreadPoolExecutor; public class Driver { @@ -359,20 +346,28 @@ private void killApplicationInner(YarnClient yarnClient, FileSystem fs, /** Start a new application. **/ public ApplicationId submitApplication(final Model.ApplicationSpec spec) throws IOException, YarnException, InterruptedException { + if (spec.getUser().isEmpty()) { - return submitApplicationInner(defaultYarnClient, defaultFileSystem, spec); - } else { + return submitApplicationInner(defaultYarnClient, defaultFileSystem, spec, null); + } + else { + // We need to obtain additional delegation token from systems while + // we are authenticated with kerberos, before we impersonate the user. + final Credentials cred = UserGroupInformation.getCurrentUser().getCredentials(); + for(CredentialProvider c : spec.getCredentialProviders()) { + c.updateCredentials(cred); + } return UserGroupInformation.createProxyUser(spec.getUser(), ugi).doAs( new PrivilegedExceptionAction() { public ApplicationId run() throws IOException, YarnException { - return submitApplicationInner(getYarnClient(), getFs(), spec); + return submitApplicationInner(getYarnClient(), getFs(), spec, cred); } }); } } - private ApplicationId submitApplicationInner(YarnClient yarnClient, - FileSystem fs, Model.ApplicationSpec spec) throws IOException, YarnException { + private ApplicationId submitApplicationInner(YarnClient yarnClient, FileSystem fs, Model.ApplicationSpec spec, + Credentials cred) throws IOException, YarnException { // First validate the spec request spec.validate(); @@ -414,12 +409,18 @@ private ApplicationId submitApplicationInner(YarnClient yarnClient, + appDir + " >" + logdir + "/application.master.log 2>&1")); - UserGroupInformation ugi = UserGroupInformation.getCurrentUser(); ByteBuffer fsTokens = null; if (UserGroupInformation.isSecurityEnabled()) { - fsTokens = collectTokens(yarnClient, fs, spec); - } else { - env.put("HADOOP_USER_NAME", ugi.getUserName()); + new HdfsCredentials(yarnClient, fs, spec, conf).updateCredentials(cred); + DataOutputBuffer dob = new DataOutputBuffer(); + cred.writeTokenStorageToStream(dob); + fsTokens = ByteBuffer.wrap(dob.getData(), 0, dob.getLength()); + + // We cancel the delegation token when the job finishes, so that it cannot be used elsewhere + conf.setBoolean("mapreduce.job.complete.cancel.delegation.tokens", true); + } + else { + env.put("HADOOP_USER_NAME", UserGroupInformation.getCurrentUser().getUserName()); } Map acls = spec.getAcls().getYarnAcls(); @@ -452,43 +453,6 @@ private ApplicationId submitApplicationInner(YarnClient yarnClient, return appId; } - private ByteBuffer collectTokens(YarnClient yarnClient, FileSystem fs, - Model.ApplicationSpec spec) throws IOException, YarnException { - // Collect security tokens as needed - LOG.debug("Collecting filesystem delegation tokens"); - Credentials credentials = UserGroupInformation.getCurrentUser().getCredentials(); - TokenCache.obtainTokensForNamenodes( - credentials, - ObjectArrays.concat( - new Path(fs.getUri()), - spec.getFileSystems().toArray(new Path[0])), - conf); - - boolean hasRMToken = false; - for (Token token: credentials.getAllTokens()) { - if (token.getKind().equals(RMDelegationTokenIdentifier.KIND_NAME)) { - LOG.debug("RM delegation token already acquired"); - hasRMToken = true; - break; - } - } - if (!hasRMToken) { - LOG.debug("Adding RM delegation token"); - Text rmDelegationTokenService = ClientRMProxy.getRMDelegationTokenService(conf); - String tokenRenewer = conf.get(YarnConfiguration.RM_PRINCIPAL); - org.apache.hadoop.yarn.api.records.Token rmDelegationToken = - yarnClient.getRMDelegationToken(new Text(tokenRenewer)); - Token rmToken = ConverterUtils.convertFromYarn( - rmDelegationToken, rmDelegationTokenService - ); - credentials.addToken(rmDelegationTokenService, rmToken); - } - - DataOutputBuffer dob = new DataOutputBuffer(); - credentials.writeTokenStorageToStream(dob); - return ByteBuffer.wrap(dob.getData(), 0, dob.getLength()); - } - private LocalResource finalizeSecurityFile( FileSystem fs, Map uploadCache, Path appDir, LocalResource file, ByteString bytes, String filename) @@ -1155,10 +1119,13 @@ public void submit(Msg.ApplicationSpec req, try { appId = submitApplication(spec); } catch (Exception exc) { + StringWriter sw = new StringWriter(); + exc.printStackTrace(new PrintWriter(sw)); + resp.onError(Status.INTERNAL .withDescription("Failed to submit application, " + "exception:\n" - + exc.getMessage()) + + sw.toString()) .asRuntimeException()); return; } diff --git a/java/src/main/java/com/anaconda/skein/Model.java b/java/src/main/java/com/anaconda/skein/Model.java index 7ec879f4..010ea989 100644 --- a/java/src/main/java/com/anaconda/skein/Model.java +++ b/java/src/main/java/com/anaconda/skein/Model.java @@ -1,5 +1,6 @@ package com.anaconda.skein; +import com.anaconda.skein.credentials.CredentialProvider; import com.google.protobuf.ByteString; import org.apache.hadoop.fs.Path; @@ -300,6 +301,7 @@ public static class ApplicationSpec { private int maxAttempts; private Set tags; private List fileSystems; + private List credentialProviders; private Acls acls; private Master master; private Map services; @@ -308,8 +310,8 @@ public ApplicationSpec() {} public ApplicationSpec(String name, String queue, String user, String nodeLabel, int maxAttempts, Set tags, - List fileSystems, Acls acls, Master master, - Map services) { + List fileSystems, List credentialProviders, + Acls acls, Master master, Map services) { this.name = name; this.queue = queue; this.user = user; @@ -317,6 +319,7 @@ public ApplicationSpec(String name, String queue, String user, this.maxAttempts = maxAttempts; this.tags = tags; this.fileSystems = fileSystems; + this.credentialProviders = credentialProviders; this.acls = acls; this.master = master; this.services = services; @@ -330,6 +333,7 @@ public String toString() { + "maxAttempts: " + maxAttempts + ", " + "tags: " + tags + ", " + "fileSystems" + fileSystems + ", " + + "delegationTokenSystems" + credentialProviders + ", " + "services: " + services + ">"); } @@ -356,6 +360,11 @@ public void setFileSystems(List fileSystems) { } public List getFileSystems() { return this.fileSystems; } + public void setCredentialProviders(List credentialProviders) { + this.credentialProviders = credentialProviders; + } + public List getCredentialProviders() { return this.credentialProviders; } + public void setAcls(Acls acls) { this.acls = acls; } public Acls getAcls() { return this.acls; } diff --git a/java/src/main/java/com/anaconda/skein/MsgUtils.java b/java/src/main/java/com/anaconda/skein/MsgUtils.java index 6c8f2dd6..a91d9c1a 100644 --- a/java/src/main/java/com/anaconda/skein/MsgUtils.java +++ b/java/src/main/java/com/anaconda/skein/MsgUtils.java @@ -1,5 +1,7 @@ package com.anaconda.skein; +import com.anaconda.skein.credentials.CredentialProvider; +import com.anaconda.skein.credentials.HiveCredentials; import com.google.common.base.Functions; import com.google.common.base.Strings; import com.google.common.collect.Lists; @@ -23,11 +25,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; +import java.util.*; public class MsgUtils { public static final Msg.Empty EMPTY = Msg.Empty.newBuilder().build(); @@ -609,6 +607,14 @@ public static Model.ApplicationSpec readApplicationSpec(Msg.ApplicationSpec spec fileSystems.add(new Path(spec.getFileSystems(i))); } + final List credentialProviders = new LinkedList(); + for(int i = 0; i < spec.getCredentialProvidersCount(); i++) { + Msg.CredentialProviderSpec d = spec.getCredentialProviders(i); + if (d.getName().equals("hive")) { + credentialProviders.add(new HiveCredentials(d, spec.getUser())); + } + } + return new Model.ApplicationSpec(spec.getName(), spec.getQueue(), spec.getUser(), @@ -616,6 +622,7 @@ public static Model.ApplicationSpec readApplicationSpec(Msg.ApplicationSpec spec spec.getMaxAttempts(), new HashSet(spec.getTagsList()), fileSystems, + credentialProviders, readAcls(spec.getAcls()), readMaster(spec.getMaster()), services); diff --git a/java/src/main/java/com/anaconda/skein/credentials/CredentialProvider.java b/java/src/main/java/com/anaconda/skein/credentials/CredentialProvider.java new file mode 100644 index 00000000..2ce0518d --- /dev/null +++ b/java/src/main/java/com/anaconda/skein/credentials/CredentialProvider.java @@ -0,0 +1,9 @@ +package com.anaconda.skein.credentials; + +import org.apache.hadoop.security.Credentials; +import org.apache.hadoop.yarn.exceptions.YarnException; +import java.io.IOException; + +public interface CredentialProvider { + public void updateCredentials(Credentials credentials) throws IOException, YarnException; +} \ No newline at end of file diff --git a/java/src/main/java/com/anaconda/skein/credentials/HdfsCredentials.java b/java/src/main/java/com/anaconda/skein/credentials/HdfsCredentials.java new file mode 100644 index 00000000..619b58e8 --- /dev/null +++ b/java/src/main/java/com/anaconda/skein/credentials/HdfsCredentials.java @@ -0,0 +1,71 @@ +package com.anaconda.skein.credentials; + +import com.anaconda.skein.Driver; +import com.anaconda.skein.Model; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.security.TokenCache; +import org.apache.hadoop.security.Credentials; +import org.apache.hadoop.security.token.Token; +import org.apache.hadoop.security.token.TokenIdentifier; +import org.apache.hadoop.yarn.client.ClientRMProxy; +import org.apache.hadoop.yarn.client.api.YarnClient; +import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.exceptions.YarnException; +import org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier; +import org.apache.hadoop.yarn.util.ConverterUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.List; + +public class HdfsCredentials implements CredentialProvider { + private static final Logger LOG = LoggerFactory.getLogger(Driver.class); + private final YarnClient yarnClient; + private final FileSystem fs; + private final Model.ApplicationSpec spec; + private final Configuration conf; + + public HdfsCredentials(YarnClient yarnClient, FileSystem fs, + Model.ApplicationSpec spec, Configuration conf) { + this.yarnClient = yarnClient; + this.fs = fs; + this.spec = spec; + this.conf=conf; + } + + @Override + public void updateCredentials(Credentials credentials) throws IOException, YarnException { + // Collect security tokens as needed + LOG.debug("Collecting filesystem delegation tokens"); + + List l= spec.getFileSystems(); + l.add(0, new Path(fs.getUri())); + + TokenCache.obtainTokensForNamenodes(credentials, + l.toArray(new Path[l.size()]), conf); + + boolean hasRMToken = false; + for (Token token: credentials.getAllTokens()) { + if (token.getKind().equals(RMDelegationTokenIdentifier.KIND_NAME)) { + LOG.debug("RM delegation token already acquired"); + hasRMToken = true; + break; + } + } + if (!hasRMToken) { + LOG.debug("Adding RM delegation token"); + Text rmDelegationTokenService = ClientRMProxy.getRMDelegationTokenService(conf); + String tokenRenewer = conf.get(YarnConfiguration.RM_PRINCIPAL); + org.apache.hadoop.yarn.api.records.Token rmDelegationToken = + yarnClient.getRMDelegationToken(new Text(tokenRenewer)); + Token rmToken = ConverterUtils.convertFromYarn( + rmDelegationToken, rmDelegationTokenService + ); + credentials.addToken(rmDelegationTokenService, rmToken); + } + } +} diff --git a/java/src/main/java/com/anaconda/skein/credentials/HiveCredentials.java b/java/src/main/java/com/anaconda/skein/credentials/HiveCredentials.java new file mode 100644 index 00000000..7cf6b245 --- /dev/null +++ b/java/src/main/java/com/anaconda/skein/credentials/HiveCredentials.java @@ -0,0 +1,68 @@ +package com.anaconda.skein.credentials; + +import com.anaconda.skein.Driver; +import com.anaconda.skein.Msg; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.security.token.delegation.DelegationTokenIdentifier; +import org.apache.hadoop.security.Credentials; +import org.apache.hadoop.security.token.Token; +import org.apache.hive.jdbc.HiveConnection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +// Delegation token based connection is explained here: +// https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-Multi-UserScenariosandProgrammaticLogintoKerberosKDC +// This class is inspired from org.apache.oozie.action.hadoop.Hive2Credentials which does the same thing for Oozie. +public class HiveCredentials implements CredentialProvider { + private static final Logger LOG = LoggerFactory.getLogger(Driver.class); + protected final String jdbcUrl; + protected final String principal; + protected final String user; + + public HiveCredentials(Msg.CredentialProviderSpec spec, String user) { + this.jdbcUrl = spec.getUri(); + this.principal = spec.getPrincipal(); + this.user = user; + } + + @Override + public void updateCredentials(Credentials credentials) { + try { + // load the driver + Class.forName("org.apache.hive.jdbc.HiveDriver"); + String fullUrl = jdbcUrl + ";principal=" + principal + ";hive.server2.proxy.user=" + user; + + Connection con = null; + String tokenStr = null; + try { + con = DriverManager.getConnection(fullUrl); + LOG.info("Connected successfully to " + fullUrl); + tokenStr = ((HiveConnection)con).getDelegationToken(user, principal); + } finally { + if (con != null) { + con.close(); + } + } + LOG.info("Got Hive Server token from " + fullUrl); + + Token hiveToken = new Token(); + hiveToken.decodeFromUrlString(tokenStr); + credentials.addToken(getUniqueAlias(hiveToken), hiveToken); + } catch (IOException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + + public Text getUniqueAlias(Token token) { + return new Text(String.format("%s_%s_%d", token.getKind().toString(), + token.getService().toString(), System.currentTimeMillis())); + } +} diff --git a/java/src/main/proto/skein.proto b/java/src/main/proto/skein.proto index 678edb65..bc563197 100644 --- a/java/src/main/proto/skein.proto +++ b/java/src/main/proto/skein.proto @@ -140,6 +140,13 @@ message Master { } +message CredentialProviderSpec { + string name = 1; + string uri = 2; + string principal = 3; +} + + message ApplicationSpec { string name = 1; string queue = 2; @@ -148,9 +155,10 @@ message ApplicationSpec { int32 max_attempts = 5; repeated string tags = 6; repeated string file_systems = 7; - Acls acls = 8; - Master master = 9; - map services = 10; + repeated CredentialProviderSpec credential_providers = 8; + Acls acls = 9; + Master master = 10; + map services = 11; } diff --git a/skein/__init__.py b/skein/__init__.py index d1afb0b5..e79ba152 100644 --- a/skein/__init__.py +++ b/skein/__init__.py @@ -3,7 +3,7 @@ from .exceptions import (SkeinError, ConnectionError, DriverNotRunningError, ApplicationNotRunningError, DriverError, ApplicationError) -from .model import (Security, ApplicationSpec, Service, File, Resources, +from .model import (Security, ApplicationSpec, Service, File, Resources, CredentialProviderSpec, FileType, FileVisibility, ACLs, Master, LogLevel) from ._version import get_versions diff --git a/skein/model.py b/skein/model.py index 74b304d7..3caab1cd 100644 --- a/skein/model.py +++ b/skein/model.py @@ -16,10 +16,10 @@ xor, lock_file) __all__ = ('ApplicationSpec', 'Service', 'Resources', 'File', 'FileType', - 'FileVisibility', 'ACLs', 'Master', 'Security', 'ApplicationState', - 'FinalStatus', 'ResourceUsageReport', 'ApplicationReport', - 'ContainerState', 'Container', 'LogLevel', 'NodeState', 'NodeReport', - 'QueueState', 'Queue', 'ApplicationLogs') + 'FileVisibility', 'ACLs', 'Master', 'CredentialProviderSpec', 'Security', + 'ApplicationState', 'FinalStatus', 'ResourceUsageReport', + 'ApplicationReport', 'ContainerState', 'Container', 'LogLevel', 'NodeState', + 'NodeReport','QueueState', 'Queue', 'ApplicationLogs') def _check_is_filename(target): @@ -1152,6 +1152,60 @@ def from_protobuf(cls, obj): security=security) +class CredentialProviderSpec(Specification): + """Configuration for the Credential Provider. + + Parameters + ---------- + name : str + Describes the name system for which to get the delegation token. Ex: 'hive' + uri : str, optional + Describes the uri of the system to connect to. + principal : str + Describes the kerberos principal of the system. + """ + __slots__ = ('name', 'uri', 'principal') + _params = ('name', 'uri', 'principal') + _protobuf_cls = _proto.CredentialProviderSpec + + def __init__(self, name='', uri='', principal=''): + self.name = name + self.uri = uri + self.principal = principal + + self._validate() + + def _validate(self): + self._check_is_type('name', str) + self._check_is_type('uri', str) + self._check_is_type('principal', str) + + def __repr__(self): + return 'CredentialProvider<...>' + + @classmethod + @implements(Specification.from_dict) + def from_dict(cls, obj, **kwargs): + cls._check_keys(obj) + + obj = obj.copy() + name = obj.pop('name', None) + uri = obj.pop('uri', None) + principal = obj.pop('principal', None) + + return cls(name=name, + uri=uri, + principal=principal, + **obj) + + @classmethod + @implements(Specification.from_protobuf) + def from_protobuf(cls, obj): + return cls(name=obj.name, + uri=obj.uri, + principal=obj.principal) + + class ApplicationSpec(Specification): """A complete description of an application. @@ -1181,6 +1235,8 @@ class ApplicationSpec(Specification): file_systems : list, optional A list of Hadoop file systems to acquire delegation tokens for. A token is always acquired for the ``defaultFS``. + credential_providers : list, optional + TODO acls : ACLs, optional Allows restricting users/groups to subsets of application access. See ``skein.ACLs`` for more information. @@ -1190,12 +1246,12 @@ class ApplicationSpec(Specification): application master during startup. Default is 1. """ __slots__ = ('services', 'master', 'name', 'queue', 'user', 'node_label', - 'tags', 'file_systems', 'acls', 'max_attempts') + 'tags', 'file_systems', 'credential_providers', 'acls', 'max_attempts') _protobuf_cls = _proto.ApplicationSpec def __init__(self, services=None, master=None, name='skein', queue='default', user='', node_label='', tags=None, - file_systems=None, acls=None, max_attempts=1): + file_systems=None, credential_providers=None, acls=None, max_attempts=1): self.services = {} if services is None else services self.master = Master() if master is None else master self.name = name @@ -1204,6 +1260,7 @@ def __init__(self, services=None, master=None, name='skein', self.node_label = node_label self.tags = set() if tags is None else set(tags) self.file_systems = [] if file_systems is None else file_systems + self.credential_providers = [] if credential_providers is None else credential_providers self.acls = ACLs() if acls is None else acls self.max_attempts = max_attempts self._validate() @@ -1219,6 +1276,7 @@ def _validate(self): self._check_is_type('node_label', str) self._check_is_set_of('tags', str) self._check_is_list_of('file_systems', str) + #self._check_is_list_of('credential_providers', CredentialProviderSpec) self._check_is_bounded_int('max_attempts', min=1) self._check_is_type('acls', ACLs) self.acls._validate() @@ -1275,7 +1333,16 @@ def from_dict(cls, obj, **kwargs): if master is not None and isinstance(master, dict): master = Master.from_dict(master, _origin=_origin) - return cls(services=services, acls=acls, master=master, **obj) + #print("George was here") + #raise Exception("George - model.py ;): " + str(len(credential_providers))) + + credential_providers = obj.pop('credential_providers', None) + if credential_providers is not None and isinstance(credential_providers, list): + credential_providers = [ + CredentialProviderSpec.from_dict(p, _origin=_origin) for p in credential_providers] + + return cls(services=services, acls=acls, master=master, + credential_providers=credential_providers, **obj) @classmethod @implements(Specification.from_protobuf) diff --git a/skein/proto/__init__.py b/skein/proto/__init__.py index 0732d53a..460e6176 100644 --- a/skein/proto/__init__.py +++ b/skein/proto/__init__.py @@ -1,9 +1,9 @@ from __future__ import absolute_import from .skein_pb2 import (Empty, FinalStatus, ApplicationState, Resources, File, - Service, Acls, Log, Master, Security, ApplicationSpec, - ResourceUsageReport, ApplicationReport, Application, - ApplicationsRequest, Url, ContainersRequest, Container, + Service, Acls, Log, Master, CredentialProviderSpec, + Security, ApplicationSpec, ResourceUsageReport, ApplicationReport, + Application, ApplicationsRequest, Url, ContainersRequest, Container, ContainerInstance, ScaleRequest, AddContainerRequest, ShutdownRequest, KillRequest, SetProgressRequest, NodeState, NodeReport, NodesRequest, Queue, diff --git a/skein/test/test_kv.py b/skein/test/test_kv.py index 1c2025bc..060b7e50 100644 --- a/skein/test/test_kv.py +++ b/skein/test/test_kv.py @@ -378,7 +378,7 @@ def test_key_value_mutablemapping(kv_test_app): with pytest.raises(TypeError): kv_test_app.kv.update({'a': 1}, {'b': 2}) - +#George def test_key_value_count(kv_test_app): kv_test_app.kv.update(kv_test_data) assert kv_test_app.kv.count() == 7 diff --git a/skein/test/test_model.py b/skein/test/test_model.py index 2d110892..d545d777 100644 --- a/skein/test/test_model.py +++ b/skein/test/test_model.py @@ -8,9 +8,9 @@ from skein.model import (ApplicationSpec, Service, Resources, File, ApplicationState, FinalStatus, FileType, ACLs, Master, - Container, ApplicationReport, ResourceUsageReport, - NodeReport, LogLevel, parse_memory, Security, Queue, - ApplicationLogs) + CredentialProviderSpec, Container, ApplicationReport, + ResourceUsageReport, NodeReport, LogLevel, parse_memory, + Security, Queue, ApplicationLogs) def indent(s, n): @@ -326,6 +326,14 @@ def test_master_invariants(): Master(files={'./bar': '/source.zip'}) +def test_credential_provider_spec(): + p1 = CredentialProviderSpec(name='hive', + uri='hive2://127.0.0.1:10000/myDatabase', + principal='hive/my.hadoop.mycompany.com@HADOOP.MYCOMPANY.COM') + p3 = CredentialProviderSpec() + check_specification_methods(p1, p3) + + def test_service(): r = Resources(memory=1024, vcores=1) s1 = Service(resources=r, diff --git a/test/skein_pb2.py b/test/skein_pb2.py new file mode 100644 index 00000000..39f3fcb5 --- /dev/null +++ b/test/skein_pb2.py @@ -0,0 +1,4402 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: skein.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='skein.proto', + package='skein', + syntax='proto3', + serialized_options=_b('\n\022com.anaconda.skeinB\003MsgH\003'), + serialized_pb=_b('\n\x0bskein.proto\x12\x05skein\"\x07\n\x05\x45mpty\"K\n\x0b\x46inalStatus\"<\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\n\n\x06KILLED\x10\x03\"\x83\x01\n\x10\x41pplicationState\"o\n\x04Type\x12\x07\n\x03NEW\x10\x00\x12\x0e\n\nNEW_SAVING\x10\x01\x12\r\n\tSUBMITTED\x10\x02\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x03\x12\x0b\n\x07RUNNING\x10\x04\x12\x0c\n\x08\x46INISHED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\n\n\x06KILLED\x10\x07\"H\n\tResources\x12\x0e\n\x06memory\x18\x01 \x01(\x05\x12\x0e\n\x06vcores\x18\x02 \x01(\x05\x12\x0c\n\x04gpus\x18\x03 \x01(\x03\x12\r\n\x05\x66pgas\x18\x04 \x01(\x03\"?\n\x03Url\x12\x0e\n\x06scheme\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\x05\x12\x0c\n\x04\x66ile\x18\x04 \x01(\t\"\xe6\x01\n\x04\x46ile\x12\x1a\n\x06source\x18\x01 \x01(\x0b\x32\n.skein.Url\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.skein.File.Type\x12*\n\nvisibility\x18\x03 \x01(\x0e\x32\x16.skein.File.Visibility\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x11\n\ttimestamp\x18\x05 \x01(\x03\"\x1d\n\x04Type\x12\x08\n\x04\x46ILE\x10\x00\x12\x0b\n\x07\x41RCHIVE\x10\x01\"6\n\nVisibility\x12\n\n\x06PUBLIC\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01\x12\x0f\n\x0b\x41PPLICATION\x10\x02\"\x91\x03\n\x07Service\x12\x11\n\tinstances\x18\x01 \x01(\x05\x12\x12\n\nnode_label\x18\x02 \x01(\t\x12\r\n\x05nodes\x18\x03 \x03(\t\x12\r\n\x05racks\x18\x04 \x03(\t\x12\x16\n\x0erelax_locality\x18\x05 \x01(\x08\x12\x14\n\x0cmax_restarts\x18\x06 \x01(\x05\x12\x16\n\x0e\x61llow_failures\x18\x07 \x01(\x08\x12#\n\tresources\x18\x08 \x01(\x0b\x32\x10.skein.Resources\x12(\n\x05\x66iles\x18\t \x03(\x0b\x32\x19.skein.Service.FilesEntry\x12$\n\x03\x65nv\x18\n \x03(\x0b\x32\x17.skein.Service.EnvEntry\x12\x0e\n\x06script\x18\x0b \x01(\t\x12\x0f\n\x07\x64\x65pends\x18\x0c \x03(\t\x1a\x39\n\nFilesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0b\x32\x0b.skein.File:\x02\x38\x01\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"~\n\x04\x41\x63ls\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\x12\x12\n\nview_users\x18\x02 \x03(\t\x12\x13\n\x0bview_groups\x18\x03 \x03(\t\x12\x14\n\x0cmodify_users\x18\x04 \x03(\t\x12\x15\n\rmodify_groups\x18\x05 \x03(\t\x12\x10\n\x08ui_users\x18\x06 \x03(\t\"`\n\x03Log\"Y\n\x05Level\x12\x08\n\x04INFO\x10\x00\x12\x07\n\x03\x41LL\x10\x01\x12\t\n\x05TRACE\x10\x02\x12\t\n\x05\x44\x45\x42UG\x10\x03\x12\x08\n\x04WARN\x10\x04\x12\t\n\x05\x45RROR\x10\x05\x12\t\n\x05\x46\x41TAL\x10\x06\x12\x07\n\x03OFF\x10\x07\"\x87\x01\n\x08Security\x12 \n\tcert_file\x18\x01 \x01(\x0b\x32\x0b.skein.FileH\x00\x12\x14\n\ncert_bytes\x18\x02 \x01(\x0cH\x00\x12\x1f\n\x08key_file\x18\x03 \x01(\x0b\x32\x0b.skein.FileH\x01\x12\x13\n\tkey_bytes\x18\x04 \x01(\x0cH\x01\x42\x06\n\x04\x63\x65rtB\x05\n\x03key\"\xdb\x02\n\x06Master\x12\x1f\n\nlog_config\x18\x01 \x01(\x0b\x32\x0b.skein.File\x12#\n\tlog_level\x18\x02 \x01(\x0e\x32\x10.skein.Log.Level\x12!\n\x08security\x18\x03 \x01(\x0b\x32\x0f.skein.Security\x12#\n\tresources\x18\x04 \x01(\x0b\x32\x10.skein.Resources\x12\'\n\x05\x66iles\x18\x05 \x03(\x0b\x32\x18.skein.Master.FilesEntry\x12#\n\x03\x65nv\x18\x06 \x03(\x0b\x32\x16.skein.Master.EnvEntry\x12\x0e\n\x06script\x18\x07 \x01(\t\x1a\x39\n\nFilesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0b\x32\x0b.skein.File:\x02\x38\x01\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd9\x02\n\x0f\x41pplicationSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05queue\x18\x02 \x01(\t\x12\x0c\n\x04user\x18\x03 \x01(\t\x12\x12\n\nnode_label\x18\x04 \x01(\t\x12\x14\n\x0cmax_attempts\x18\x05 \x01(\x05\x12\x0c\n\x04tags\x18\x06 \x03(\t\x12\x14\n\x0c\x66ile_systems\x18\x07 \x03(\t\x12\x1a\n\x12\x64\x65legation_systems\x18\x08 \x03(\t\x12\x19\n\x04\x61\x63ls\x18\t \x01(\x0b\x32\x0b.skein.Acls\x12\x1d\n\x06master\x18\n \x01(\x0b\x32\r.skein.Master\x12\x36\n\x08services\x18\x0b \x03(\x0b\x32$.skein.ApplicationSpec.ServicesEntry\x1a?\n\rServicesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.skein.Service:\x02\x38\x01\"\xad\x02\n\tContainer\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\x10\n\x08instance\x18\x02 \x01(\x05\x12%\n\x05state\x18\x03 \x01(\x0e\x32\x16.skein.Container.State\x12\x19\n\x11yarn_container_id\x18\x04 \x01(\t\x12\x1e\n\x16yarn_node_http_address\x18\x05 \x01(\t\x12\x12\n\nstart_time\x18\x06 \x01(\x03\x12\x13\n\x0b\x66inish_time\x18\x07 \x01(\x03\x12\x14\n\x0c\x65xit_message\x18\x08 \x01(\t\"W\n\x05State\x12\x0b\n\x07WAITING\x10\x00\x12\r\n\tREQUESTED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\n\n\x06KILLED\x10\x05\"\xe5\x01\n\x13ResourceUsageReport\x12\x16\n\x0ememory_seconds\x18\x01 \x01(\x03\x12\x15\n\rvcore_seconds\x18\x02 \x01(\x03\x12\x1b\n\x13num_used_containers\x18\x03 \x01(\x03\x12*\n\x10needed_resources\x18\x04 \x01(\x0b\x32\x10.skein.Resources\x12,\n\x12reserved_resources\x18\x05 \x01(\x0b\x32\x10.skein.Resources\x12(\n\x0eused_resources\x18\x06 \x01(\x0b\x32\x10.skein.Resources\"\xe1\x02\n\x11\x41pplicationReport\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04user\x18\x03 \x01(\t\x12\r\n\x05queue\x18\x04 \x01(\t\x12\x0c\n\x04tags\x18\x05 \x03(\t\x12\x0c\n\x04host\x18\x06 \x01(\t\x12\x0c\n\x04port\x18\x07 \x01(\x05\x12\x14\n\x0ctracking_url\x18\x08 \x01(\t\x12+\n\x05state\x18\t \x01(\x0e\x32\x1c.skein.ApplicationState.Type\x12-\n\x0c\x66inal_status\x18\n \x01(\x0e\x32\x17.skein.FinalStatus.Type\x12\x10\n\x08progress\x18\x0b \x01(\x02\x12)\n\x05usage\x18\x0c \x01(\x0b\x32\x1a.skein.ResourceUsageReport\x12\x13\n\x0b\x64iagnostics\x18\r \x01(\t\x12\x12\n\nstart_time\x18\x0e \x01(\x03\x12\x13\n\x0b\x66inish_time\x18\x0f \x01(\x03\"\x87\x01\n\tNodeState\"z\n\x04Type\x12\x12\n\x0e\x44\x45\x43OMMISSIONED\x10\x00\x12\x13\n\x0f\x44\x45\x43OMMISSIONING\x10\x01\x12\x08\n\x04LOST\x10\x02\x12\x07\n\x03NEW\x10\x03\x12\x0c\n\x08REBOOTED\x10\x04\x12\x0b\n\x07RUNNING\x10\x05\x12\x0c\n\x08SHUTDOWN\x10\x06\x12\r\n\tUNHEALTHY\x10\x07\"\xe3\x01\n\nNodeReport\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0chttp_address\x18\x02 \x01(\t\x12\x11\n\track_name\x18\x03 \x01(\t\x12\x0e\n\x06labels\x18\x04 \x03(\t\x12$\n\x05state\x18\x05 \x01(\x0e\x32\x15.skein.NodeState.Type\x12\x15\n\rhealth_report\x18\x06 \x01(\t\x12)\n\x0ftotal_resources\x18\x07 \x01(\x0b\x32\x10.skein.Resources\x12(\n\x0eused_resources\x18\x08 \x01(\x0b\x32\x10.skein.Resources\"\xca\x01\n\x05Queue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05state\x18\x02 \x01(\x0e\x32\x12.skein.Queue.State\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x02\x12\x14\n\x0cmax_capacity\x18\x04 \x01(\x02\x12\x14\n\x0cpercent_used\x18\x05 \x01(\x02\x12\x13\n\x0bnode_labels\x18\x06 \x03(\t\x12\x1a\n\x12\x64\x65\x66\x61ult_node_label\x18\x07 \x01(\t\"!\n\x05State\x12\x0b\n\x07RUNNING\x10\x00\x12\x0b\n\x07STOPPED\x10\x01\"\x19\n\x0b\x41pplication\x12\n\n\x02id\x18\x01 \x01(\t\"\xc8\x01\n\x13\x41pplicationsRequest\x12,\n\x06states\x18\x01 \x03(\x0e\x32\x1c.skein.ApplicationState.Type\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04user\x18\x03 \x01(\t\x12\r\n\x05queue\x18\x04 \x01(\t\x12\x15\n\rstarted_begin\x18\x05 \x01(\x03\x12\x13\n\x0bstarted_end\x18\x06 \x01(\x03\x12\x16\n\x0e\x66inished_begin\x18\x07 \x01(\x03\x12\x14\n\x0c\x66inished_end\x18\x08 \x01(\x03\"A\n\x14\x41pplicationsResponse\x12)\n\x07reports\x18\x01 \x03(\x0b\x32\x18.skein.ApplicationReport\"5\n\x0cNodesRequest\x12%\n\x06states\x18\x01 \x03(\x0e\x32\x15.skein.NodeState.Type\"3\n\rNodesResponse\x12\"\n\x07reports\x18\x01 \x03(\x0b\x32\x11.skein.NodeReport\"\x1c\n\x0cQueueRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\".\n\x0eQueuesResponse\x12\x1c\n\x06queues\x18\x01 \x03(\x0b\x32\x0c.skein.Queue\"\'\n\x0bLogsRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04user\x18\x02 \x01(\t\"h\n\x0cLogsResponse\x12+\n\x04logs\x18\x02 \x03(\x0b\x32\x1d.skein.LogsResponse.LogsEntry\x1a+\n\tLogsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"(\n\x0bMoveRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05queue\x18\x02 \x01(\t\"\'\n\x0bKillRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04user\x18\x02 \x01(\t\"U\n\x0fShutdownRequest\x12-\n\x0c\x66inal_status\x18\x01 \x01(\x0e\x32\x17.skein.FinalStatus.Type\x12\x13\n\x0b\x64iagnostics\x18\x02 \x01(\t\"O\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\'\n\x05owner\x18\x03 \x01(\x0b\x32\x18.skein.ContainerInstance\"\x92\x01\n\x0fGetRangeRequest\x12\r\n\x05start\x18\x01 \x01(\t\x12\x0b\n\x03\x65nd\x18\x02 \x01(\t\x12\x36\n\x0bresult_type\x18\x03 \x01(\x0e\x32!.skein.GetRangeRequest.ResultType\"+\n\nResultType\x12\t\n\x05ITEMS\x10\x00\x12\x08\n\x04KEYS\x10\x01\x12\x08\n\x04NONE\x10\x02\"z\n\x10GetRangeResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x36\n\x0bresult_type\x18\x02 \x01(\x0e\x32!.skein.GetRangeRequest.ResultType\x12\x1f\n\x06result\x18\x03 \x03(\x0b\x32\x0f.skein.KeyValue\"\x99\x01\n\rPutKeyRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\'\n\x05owner\x18\x03 \x01(\x0b\x32\x18.skein.ContainerInstance\x12\x14\n\x0cignore_value\x18\x04 \x01(\x08\x12\x14\n\x0cignore_owner\x18\x05 \x01(\x08\x12\x17\n\x0freturn_previous\x18\x06 \x01(\x08\"L\n\x0ePutKeyResponse\x12\x17\n\x0freturn_previous\x18\x01 \x01(\x08\x12!\n\x08previous\x18\x02 \x01(\x0b\x32\x0f.skein.KeyValue\"\x98\x01\n\x12\x44\x65leteRangeRequest\x12\r\n\x05start\x18\x01 \x01(\t\x12\x0b\n\x03\x65nd\x18\x02 \x01(\t\x12\x39\n\x0bresult_type\x18\x03 \x01(\x0e\x32$.skein.DeleteRangeRequest.ResultType\"+\n\nResultType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05ITEMS\x10\x01\x12\x08\n\x04KEYS\x10\x02\"\x80\x01\n\x13\x44\x65leteRangeResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x39\n\x0bresult_type\x18\x02 \x01(\x0e\x32$.skein.DeleteRangeRequest.ResultType\x12\x1f\n\x06result\x18\x03 \x03(\x0b\x32\x0f.skein.KeyValue\"\xae\x02\n\tCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x08operator\x18\x02 \x01(\x0e\x32\x19.skein.Condition.Operator\x12%\n\x05\x66ield\x18\x03 \x01(\x0e\x32\x16.skein.Condition.Field\x12\x0f\n\x05value\x18\x04 \x01(\x0cH\x00\x12)\n\x05owner\x18\x05 \x01(\x0b\x32\x18.skein.ContainerInstanceH\x00\"^\n\x08Operator\x12\t\n\x05\x45QUAL\x10\x00\x12\r\n\tNOT_EQUAL\x10\x01\x12\x08\n\x04LESS\x10\x02\x12\x0e\n\nLESS_EQUAL\x10\x03\x12\x0b\n\x07GREATER\x10\x04\x12\x11\n\rGREATER_EQUAL\x10\x05\"\x1d\n\x05\x46ield\x12\t\n\x05VALUE\x10\x00\x12\t\n\x05OWNER\x10\x01\x42\x05\n\x03rhs\"\x9f\x01\n\tOpRequest\x12+\n\tget_range\x18\x01 \x01(\x0b\x32\x16.skein.GetRangeRequestH\x00\x12\'\n\x07put_key\x18\x02 \x01(\x0b\x32\x14.skein.PutKeyRequestH\x00\x12\x31\n\x0c\x64\x65lete_range\x18\x03 \x01(\x0b\x32\x19.skein.DeleteRangeRequestH\x00\x42\t\n\x07request\"\xa4\x01\n\nOpResponse\x12,\n\tget_range\x18\x01 \x01(\x0b\x32\x17.skein.GetRangeResponseH\x00\x12(\n\x07put_key\x18\x02 \x01(\x0b\x32\x15.skein.PutKeyResponseH\x00\x12\x32\n\x0c\x64\x65lete_range\x18\x03 \x01(\x0b\x32\x1a.skein.DeleteRangeResponseH\x00\x42\n\n\x08response\"\x85\x01\n\x12TransactionRequest\x12#\n\tcondition\x18\x01 \x03(\x0b\x32\x10.skein.Condition\x12$\n\non_success\x18\x02 \x03(\x0b\x32\x10.skein.OpRequest\x12$\n\non_failure\x18\x03 \x03(\x0b\x32\x10.skein.OpRequest\"K\n\x13TransactionResponse\x12\x11\n\tsucceeded\x18\x01 \x01(\x08\x12!\n\x06result\x18\x02 \x03(\x0b\x32\x11.skein.OpResponse\"\x8a\x01\n\x12WatchCreateRequest\x12\r\n\x05start\x18\x01 \x01(\t\x12\x0b\n\x03\x65nd\x18\x02 \x01(\t\x12\x32\n\nevent_type\x18\x03 \x01(\x0e\x32\x1e.skein.WatchCreateRequest.Type\"$\n\x04Type\x12\x07\n\x03\x41LL\x10\x00\x12\x07\n\x03PUT\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\"&\n\x12WatchCancelRequest\x12\x10\n\x08watch_id\x18\x01 \x01(\x05\"s\n\x0cWatchRequest\x12+\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x19.skein.WatchCreateRequestH\x00\x12+\n\x06\x63\x61ncel\x18\x02 \x01(\x0b\x32\x19.skein.WatchCancelRequestH\x00\x42\t\n\x07request\"\x9f\x01\n\rWatchResponse\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.skein.WatchResponse.Type\x12\x10\n\x08watch_id\x18\x02 \x01(\x05\x12\x1e\n\x05\x65vent\x18\x03 \x03(\x0b\x32\x0f.skein.KeyValue\"3\n\x04Type\x12\n\n\x06\x43REATE\x10\x00\x12\n\n\x06\x43\x41NCEL\x10\x01\x12\x07\n\x03PUT\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\";\n\x11\x43ontainerInstance\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\x10\n\x08instance\x18\x02 \x01(\x05\"M\n\x11\x43ontainersRequest\x12&\n\x06states\x18\x01 \x03(\x0e\x32\x16.skein.Container.State\x12\x10\n\x08services\x18\x02 \x03(\t\":\n\x12\x43ontainersResponse\x12$\n\ncontainers\x18\x01 \x03(\x0b\x32\x10.skein.Container\"B\n\x0cScaleRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x05\"\x89\x01\n\x13\x41\x64\x64\x43ontainerRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\x30\n\x03\x65nv\x18\x02 \x03(\x0b\x32#.skein.AddContainerRequest.EnvEntry\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"&\n\x12SetProgressRequest\x12\x10\n\x08progress\x18\x01 \x01(\x02\"9\n\x05Proxy\x12\r\n\x05route\x18\x01 \x01(\t\x12\x11\n\tlink_name\x18\x02 \x01(\t\x12\x0e\n\x06target\x18\x03 \x01(\t\"#\n\x12RemoveProxyRequest\x12\r\n\x05route\x18\x01 \x01(\t\"\x0f\n\rUIInfoRequest\":\n\x0eUIInfoResponse\x12\x12\n\nui_address\x18\x01 \x03(\t\x12\x14\n\x0cproxy_prefix\x18\x02 \x01(\t\"\x13\n\x11GetProxiesRequest\"1\n\x12GetProxiesResponse\x12\x1b\n\x05proxy\x18\x01 \x03(\x0b\x32\x0c.skein.Proxy2\x93\x05\n\x06\x44river\x12\"\n\x04ping\x12\x0c.skein.Empty\x1a\x0c.skein.Empty\x12\x39\n\tgetStatus\x12\x12.skein.Application\x1a\x18.skein.ApplicationReport\x12J\n\x0fgetApplications\x12\x1a.skein.ApplicationsRequest\x1a\x1b.skein.ApplicationsResponse\x12\x35\n\x08getNodes\x12\x13.skein.NodesRequest\x1a\x14.skein.NodesResponse\x12-\n\x08getQueue\x12\x13.skein.QueueRequest\x1a\x0c.skein.Queue\x12<\n\x0egetChildQueues\x12\x13.skein.QueueRequest\x1a\x15.skein.QueuesResponse\x12\x33\n\x0cgetAllQueues\x12\x0c.skein.Empty\x1a\x15.skein.QueuesResponse\x12\x33\n\x0fmoveApplication\x12\x12.skein.MoveRequest\x1a\x0c.skein.Empty\x12\x34\n\x06submit\x12\x16.skein.ApplicationSpec\x1a\x12.skein.Application\x12<\n\x0cwaitForStart\x12\x12.skein.Application\x1a\x18.skein.ApplicationReport\x12(\n\x04kill\x12\x12.skein.KillRequest\x1a\x0c.skein.Empty\x12\x32\n\x07getLogs\x12\x12.skein.LogsRequest\x1a\x13.skein.LogsResponse2\xb9\x07\n\tAppMaster\x12\x30\n\x08shutdown\x12\x16.skein.ShutdownRequest\x1a\x0c.skein.Empty\x12;\n\x08GetRange\x12\x16.skein.GetRangeRequest\x1a\x17.skein.GetRangeResponse\x12\x35\n\x06PutKey\x12\x14.skein.PutKeyRequest\x1a\x15.skein.PutKeyResponse\x12\x44\n\x0b\x44\x65leteRange\x12\x19.skein.DeleteRangeRequest\x1a\x1a.skein.DeleteRangeResponse\x12\x44\n\x0bTransaction\x12\x19.skein.TransactionRequest\x1a\x1a.skein.TransactionResponse\x12\x36\n\x05Watch\x12\x13.skein.WatchRequest\x1a\x14.skein.WatchResponse(\x01\x30\x01\x12:\n\x12getApplicationSpec\x12\x0c.skein.Empty\x1a\x16.skein.ApplicationSpec\x12\x44\n\rgetContainers\x12\x18.skein.ContainersRequest\x1a\x19.skein.ContainersResponse\x12\x37\n\rkillContainer\x12\x18.skein.ContainerInstance\x1a\x0c.skein.Empty\x12\x37\n\x05scale\x12\x13.skein.ScaleRequest\x1a\x19.skein.ContainersResponse\x12<\n\x0c\x61\x64\x64\x43ontainer\x12\x1a.skein.AddContainerRequest\x1a\x10.skein.Container\x12\x36\n\x0bSetProgress\x12\x19.skein.SetProgressRequest\x1a\x0c.skein.Empty\x12&\n\x08\x41\x64\x64Proxy\x12\x0c.skein.Proxy\x1a\x0c.skein.Empty\x12\x36\n\x0bRemoveProxy\x12\x19.skein.RemoveProxyRequest\x1a\x0c.skein.Empty\x12\x35\n\x06UiInfo\x12\x14.skein.UIInfoRequest\x1a\x15.skein.UIInfoResponse\x12\x41\n\nGetProxies\x12\x18.skein.GetProxiesRequest\x1a\x19.skein.GetProxiesResponseB\x1b\n\x12\x63om.anaconda.skeinB\x03MsgH\x03\x62\x06proto3') +) + + + +_FINALSTATUS_TYPE = _descriptor.EnumDescriptor( + name='Type', + full_name='skein.FinalStatus.Type', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='UNDEFINED', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SUCCEEDED', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FAILED', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KILLED', index=3, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=46, + serialized_end=106, +) +_sym_db.RegisterEnumDescriptor(_FINALSTATUS_TYPE) + +_APPLICATIONSTATE_TYPE = _descriptor.EnumDescriptor( + name='Type', + full_name='skein.ApplicationState.Type', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='NEW', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NEW_SAVING', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SUBMITTED', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ACCEPTED', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RUNNING', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FINISHED', index=5, number=5, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FAILED', index=6, number=6, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KILLED', index=7, number=7, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=129, + serialized_end=240, +) +_sym_db.RegisterEnumDescriptor(_APPLICATIONSTATE_TYPE) + +_FILE_TYPE = _descriptor.EnumDescriptor( + name='Type', + full_name='skein.File.Type', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='FILE', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ARCHIVE', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=527, + serialized_end=556, +) +_sym_db.RegisterEnumDescriptor(_FILE_TYPE) + +_FILE_VISIBILITY = _descriptor.EnumDescriptor( + name='Visibility', + full_name='skein.File.Visibility', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='PUBLIC', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PRIVATE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='APPLICATION', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=558, + serialized_end=612, +) +_sym_db.RegisterEnumDescriptor(_FILE_VISIBILITY) + +_LOG_LEVEL = _descriptor.EnumDescriptor( + name='Level', + full_name='skein.Log.Level', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='INFO', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ALL', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TRACE', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DEBUG', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='WARN', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ERROR', index=5, number=5, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FATAL', index=6, number=6, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OFF', index=7, number=7, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=1153, + serialized_end=1242, +) +_sym_db.RegisterEnumDescriptor(_LOG_LEVEL) + +_CONTAINER_STATE = _descriptor.EnumDescriptor( + name='State', + full_name='skein.Container.State', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='WAITING', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REQUESTED', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RUNNING', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SUCCEEDED', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FAILED', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KILLED', index=5, number=5, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=2295, + serialized_end=2382, +) +_sym_db.RegisterEnumDescriptor(_CONTAINER_STATE) + +_NODESTATE_TYPE = _descriptor.EnumDescriptor( + name='Type', + full_name='skein.NodeState.Type', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DECOMMISSIONED', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DECOMMISSIONING', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LOST', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NEW', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REBOOTED', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RUNNING', index=5, number=5, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SHUTDOWN', index=6, number=6, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='UNHEALTHY', index=7, number=7, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=2986, + serialized_end=3108, +) +_sym_db.RegisterEnumDescriptor(_NODESTATE_TYPE) + +_QUEUE_STATE = _descriptor.EnumDescriptor( + name='State', + full_name='skein.Queue.State', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='RUNNING', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='STOPPED', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=3510, + serialized_end=3543, +) +_sym_db.RegisterEnumDescriptor(_QUEUE_STATE) + +_GETRANGEREQUEST_RESULTTYPE = _descriptor.EnumDescriptor( + name='ResultType', + full_name='skein.GetRangeRequest.ResultType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='ITEMS', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KEYS', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NONE', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=4530, + serialized_end=4573, +) +_sym_db.RegisterEnumDescriptor(_GETRANGEREQUEST_RESULTTYPE) + +_DELETERANGEREQUEST_RESULTTYPE = _descriptor.EnumDescriptor( + name='ResultType', + full_name='skein.DeleteRangeRequest.ResultType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='NONE', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ITEMS', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='KEYS', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=5043, + serialized_end=5086, +) +_sym_db.RegisterEnumDescriptor(_DELETERANGEREQUEST_RESULTTYPE) + +_CONDITION_OPERATOR = _descriptor.EnumDescriptor( + name='Operator', + full_name='skein.Condition.Operator', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='EQUAL', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NOT_EQUAL', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LESS', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LESS_EQUAL', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GREATER', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GREATER_EQUAL', index=5, number=5, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=5390, + serialized_end=5484, +) +_sym_db.RegisterEnumDescriptor(_CONDITION_OPERATOR) + +_CONDITION_FIELD = _descriptor.EnumDescriptor( + name='Field', + full_name='skein.Condition.Field', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='VALUE', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='OWNER', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=5486, + serialized_end=5515, +) +_sym_db.RegisterEnumDescriptor(_CONDITION_FIELD) + +_WATCHCREATEREQUEST_TYPE = _descriptor.EnumDescriptor( + name='Type', + full_name='skein.WatchCreateRequest.Type', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='ALL', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PUT', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DELETE', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=6169, + serialized_end=6205, +) +_sym_db.RegisterEnumDescriptor(_WATCHCREATEREQUEST_TYPE) + +_WATCHRESPONSE_TYPE = _descriptor.EnumDescriptor( + name='Type', + full_name='skein.WatchResponse.Type', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='CREATE', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CANCEL', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PUT', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DELETE', index=3, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=6473, + serialized_end=6524, +) +_sym_db.RegisterEnumDescriptor(_WATCHRESPONSE_TYPE) + + +_EMPTY = _descriptor.Descriptor( + name='Empty', + full_name='skein.Empty', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=22, + serialized_end=29, +) + + +_FINALSTATUS = _descriptor.Descriptor( + name='FinalStatus', + full_name='skein.FinalStatus', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FINALSTATUS_TYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=31, + serialized_end=106, +) + + +_APPLICATIONSTATE = _descriptor.Descriptor( + name='ApplicationState', + full_name='skein.ApplicationState', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _APPLICATIONSTATE_TYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=109, + serialized_end=240, +) + + +_RESOURCES = _descriptor.Descriptor( + name='Resources', + full_name='skein.Resources', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='memory', full_name='skein.Resources.memory', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='vcores', full_name='skein.Resources.vcores', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gpus', full_name='skein.Resources.gpus', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fpgas', full_name='skein.Resources.fpgas', index=3, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=242, + serialized_end=314, +) + + +_URL = _descriptor.Descriptor( + name='Url', + full_name='skein.Url', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='scheme', full_name='skein.Url.scheme', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='host', full_name='skein.Url.host', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='port', full_name='skein.Url.port', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='file', full_name='skein.Url.file', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=316, + serialized_end=379, +) + + +_FILE = _descriptor.Descriptor( + name='File', + full_name='skein.File', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='skein.File.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='skein.File.type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='visibility', full_name='skein.File.visibility', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='size', full_name='skein.File.size', index=3, + number=4, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='timestamp', full_name='skein.File.timestamp', index=4, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FILE_TYPE, + _FILE_VISIBILITY, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=382, + serialized_end=612, +) + + +_SERVICE_FILESENTRY = _descriptor.Descriptor( + name='FilesEntry', + full_name='skein.Service.FilesEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.Service.FilesEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.Service.FilesEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=915, + serialized_end=972, +) + +_SERVICE_ENVENTRY = _descriptor.Descriptor( + name='EnvEntry', + full_name='skein.Service.EnvEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.Service.EnvEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.Service.EnvEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=974, + serialized_end=1016, +) + +_SERVICE = _descriptor.Descriptor( + name='Service', + full_name='skein.Service', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='instances', full_name='skein.Service.instances', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='node_label', full_name='skein.Service.node_label', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='nodes', full_name='skein.Service.nodes', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='racks', full_name='skein.Service.racks', index=3, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='relax_locality', full_name='skein.Service.relax_locality', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_restarts', full_name='skein.Service.max_restarts', index=5, + number=6, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='allow_failures', full_name='skein.Service.allow_failures', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resources', full_name='skein.Service.resources', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='files', full_name='skein.Service.files', index=8, + number=9, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='env', full_name='skein.Service.env', index=9, + number=10, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='script', full_name='skein.Service.script', index=10, + number=11, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='depends', full_name='skein.Service.depends', index=11, + number=12, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_SERVICE_FILESENTRY, _SERVICE_ENVENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=615, + serialized_end=1016, +) + + +_ACLS = _descriptor.Descriptor( + name='Acls', + full_name='skein.Acls', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='enable', full_name='skein.Acls.enable', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='view_users', full_name='skein.Acls.view_users', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='view_groups', full_name='skein.Acls.view_groups', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='modify_users', full_name='skein.Acls.modify_users', index=3, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='modify_groups', full_name='skein.Acls.modify_groups', index=4, + number=5, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ui_users', full_name='skein.Acls.ui_users', index=5, + number=6, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1018, + serialized_end=1144, +) + + +_LOG = _descriptor.Descriptor( + name='Log', + full_name='skein.Log', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LOG_LEVEL, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1146, + serialized_end=1242, +) + + +_SECURITY = _descriptor.Descriptor( + name='Security', + full_name='skein.Security', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='cert_file', full_name='skein.Security.cert_file', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cert_bytes', full_name='skein.Security.cert_bytes', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='key_file', full_name='skein.Security.key_file', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='key_bytes', full_name='skein.Security.key_bytes', index=3, + number=4, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='cert', full_name='skein.Security.cert', + index=0, containing_type=None, fields=[]), + _descriptor.OneofDescriptor( + name='key', full_name='skein.Security.key', + index=1, containing_type=None, fields=[]), + ], + serialized_start=1245, + serialized_end=1380, +) + + +_MASTER_FILESENTRY = _descriptor.Descriptor( + name='FilesEntry', + full_name='skein.Master.FilesEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.Master.FilesEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.Master.FilesEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=915, + serialized_end=972, +) + +_MASTER_ENVENTRY = _descriptor.Descriptor( + name='EnvEntry', + full_name='skein.Master.EnvEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.Master.EnvEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.Master.EnvEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=974, + serialized_end=1016, +) + +_MASTER = _descriptor.Descriptor( + name='Master', + full_name='skein.Master', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='log_config', full_name='skein.Master.log_config', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='log_level', full_name='skein.Master.log_level', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='security', full_name='skein.Master.security', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resources', full_name='skein.Master.resources', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='files', full_name='skein.Master.files', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='env', full_name='skein.Master.env', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='script', full_name='skein.Master.script', index=6, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_MASTER_FILESENTRY, _MASTER_ENVENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1383, + serialized_end=1730, +) + + +_APPLICATIONSPEC_SERVICESENTRY = _descriptor.Descriptor( + name='ServicesEntry', + full_name='skein.ApplicationSpec.ServicesEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.ApplicationSpec.ServicesEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.ApplicationSpec.ServicesEntry.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2015, + serialized_end=2078, +) + +_APPLICATIONSPEC = _descriptor.Descriptor( + name='ApplicationSpec', + full_name='skein.ApplicationSpec', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='skein.ApplicationSpec.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='queue', full_name='skein.ApplicationSpec.queue', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='user', full_name='skein.ApplicationSpec.user', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='node_label', full_name='skein.ApplicationSpec.node_label', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_attempts', full_name='skein.ApplicationSpec.max_attempts', index=4, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tags', full_name='skein.ApplicationSpec.tags', index=5, + number=6, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='file_systems', full_name='skein.ApplicationSpec.file_systems', index=6, + number=7, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='delegation_systems', full_name='skein.ApplicationSpec.delegation_systems', index=7, + number=8, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='acls', full_name='skein.ApplicationSpec.acls', index=8, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='master', full_name='skein.ApplicationSpec.master', index=9, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='services', full_name='skein.ApplicationSpec.services', index=10, + number=11, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_APPLICATIONSPEC_SERVICESENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1733, + serialized_end=2078, +) + + +_CONTAINER = _descriptor.Descriptor( + name='Container', + full_name='skein.Container', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='service_name', full_name='skein.Container.service_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='instance', full_name='skein.Container.instance', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='state', full_name='skein.Container.state', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='yarn_container_id', full_name='skein.Container.yarn_container_id', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='yarn_node_http_address', full_name='skein.Container.yarn_node_http_address', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='start_time', full_name='skein.Container.start_time', index=5, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='finish_time', full_name='skein.Container.finish_time', index=6, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='exit_message', full_name='skein.Container.exit_message', index=7, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONTAINER_STATE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2081, + serialized_end=2382, +) + + +_RESOURCEUSAGEREPORT = _descriptor.Descriptor( + name='ResourceUsageReport', + full_name='skein.ResourceUsageReport', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='memory_seconds', full_name='skein.ResourceUsageReport.memory_seconds', index=0, + number=1, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='vcore_seconds', full_name='skein.ResourceUsageReport.vcore_seconds', index=1, + number=2, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num_used_containers', full_name='skein.ResourceUsageReport.num_used_containers', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='needed_resources', full_name='skein.ResourceUsageReport.needed_resources', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='reserved_resources', full_name='skein.ResourceUsageReport.reserved_resources', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='used_resources', full_name='skein.ResourceUsageReport.used_resources', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2385, + serialized_end=2614, +) + + +_APPLICATIONREPORT = _descriptor.Descriptor( + name='ApplicationReport', + full_name='skein.ApplicationReport', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='skein.ApplicationReport.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='skein.ApplicationReport.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='user', full_name='skein.ApplicationReport.user', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='queue', full_name='skein.ApplicationReport.queue', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tags', full_name='skein.ApplicationReport.tags', index=4, + number=5, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='host', full_name='skein.ApplicationReport.host', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='port', full_name='skein.ApplicationReport.port', index=6, + number=7, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tracking_url', full_name='skein.ApplicationReport.tracking_url', index=7, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='state', full_name='skein.ApplicationReport.state', index=8, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='final_status', full_name='skein.ApplicationReport.final_status', index=9, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='progress', full_name='skein.ApplicationReport.progress', index=10, + number=11, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='usage', full_name='skein.ApplicationReport.usage', index=11, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='diagnostics', full_name='skein.ApplicationReport.diagnostics', index=12, + number=13, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='start_time', full_name='skein.ApplicationReport.start_time', index=13, + number=14, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='finish_time', full_name='skein.ApplicationReport.finish_time', index=14, + number=15, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2617, + serialized_end=2970, +) + + +_NODESTATE = _descriptor.Descriptor( + name='NodeState', + full_name='skein.NodeState', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _NODESTATE_TYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2973, + serialized_end=3108, +) + + +_NODEREPORT = _descriptor.Descriptor( + name='NodeReport', + full_name='skein.NodeReport', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='skein.NodeReport.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='http_address', full_name='skein.NodeReport.http_address', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='rack_name', full_name='skein.NodeReport.rack_name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='labels', full_name='skein.NodeReport.labels', index=3, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='state', full_name='skein.NodeReport.state', index=4, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='health_report', full_name='skein.NodeReport.health_report', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='total_resources', full_name='skein.NodeReport.total_resources', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='used_resources', full_name='skein.NodeReport.used_resources', index=7, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3111, + serialized_end=3338, +) + + +_QUEUE = _descriptor.Descriptor( + name='Queue', + full_name='skein.Queue', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='skein.Queue.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='state', full_name='skein.Queue.state', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='capacity', full_name='skein.Queue.capacity', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_capacity', full_name='skein.Queue.max_capacity', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='percent_used', full_name='skein.Queue.percent_used', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='node_labels', full_name='skein.Queue.node_labels', index=5, + number=6, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='default_node_label', full_name='skein.Queue.default_node_label', index=6, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _QUEUE_STATE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3341, + serialized_end=3543, +) + + +_APPLICATION = _descriptor.Descriptor( + name='Application', + full_name='skein.Application', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='skein.Application.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3545, + serialized_end=3570, +) + + +_APPLICATIONSREQUEST = _descriptor.Descriptor( + name='ApplicationsRequest', + full_name='skein.ApplicationsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='states', full_name='skein.ApplicationsRequest.states', index=0, + number=1, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='skein.ApplicationsRequest.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='user', full_name='skein.ApplicationsRequest.user', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='queue', full_name='skein.ApplicationsRequest.queue', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='started_begin', full_name='skein.ApplicationsRequest.started_begin', index=4, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='started_end', full_name='skein.ApplicationsRequest.started_end', index=5, + number=6, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='finished_begin', full_name='skein.ApplicationsRequest.finished_begin', index=6, + number=7, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='finished_end', full_name='skein.ApplicationsRequest.finished_end', index=7, + number=8, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3573, + serialized_end=3773, +) + + +_APPLICATIONSRESPONSE = _descriptor.Descriptor( + name='ApplicationsResponse', + full_name='skein.ApplicationsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='reports', full_name='skein.ApplicationsResponse.reports', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3775, + serialized_end=3840, +) + + +_NODESREQUEST = _descriptor.Descriptor( + name='NodesRequest', + full_name='skein.NodesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='states', full_name='skein.NodesRequest.states', index=0, + number=1, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3842, + serialized_end=3895, +) + + +_NODESRESPONSE = _descriptor.Descriptor( + name='NodesResponse', + full_name='skein.NodesResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='reports', full_name='skein.NodesResponse.reports', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3897, + serialized_end=3948, +) + + +_QUEUEREQUEST = _descriptor.Descriptor( + name='QueueRequest', + full_name='skein.QueueRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='skein.QueueRequest.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3950, + serialized_end=3978, +) + + +_QUEUESRESPONSE = _descriptor.Descriptor( + name='QueuesResponse', + full_name='skein.QueuesResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='queues', full_name='skein.QueuesResponse.queues', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3980, + serialized_end=4026, +) + + +_LOGSREQUEST = _descriptor.Descriptor( + name='LogsRequest', + full_name='skein.LogsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='skein.LogsRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='user', full_name='skein.LogsRequest.user', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4028, + serialized_end=4067, +) + + +_LOGSRESPONSE_LOGSENTRY = _descriptor.Descriptor( + name='LogsEntry', + full_name='skein.LogsResponse.LogsEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.LogsResponse.LogsEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.LogsResponse.LogsEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4130, + serialized_end=4173, +) + +_LOGSRESPONSE = _descriptor.Descriptor( + name='LogsResponse', + full_name='skein.LogsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='logs', full_name='skein.LogsResponse.logs', index=0, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_LOGSRESPONSE_LOGSENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4069, + serialized_end=4173, +) + + +_MOVEREQUEST = _descriptor.Descriptor( + name='MoveRequest', + full_name='skein.MoveRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='skein.MoveRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='queue', full_name='skein.MoveRequest.queue', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4175, + serialized_end=4215, +) + + +_KILLREQUEST = _descriptor.Descriptor( + name='KillRequest', + full_name='skein.KillRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='skein.KillRequest.id', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='user', full_name='skein.KillRequest.user', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4217, + serialized_end=4256, +) + + +_SHUTDOWNREQUEST = _descriptor.Descriptor( + name='ShutdownRequest', + full_name='skein.ShutdownRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='final_status', full_name='skein.ShutdownRequest.final_status', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='diagnostics', full_name='skein.ShutdownRequest.diagnostics', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4258, + serialized_end=4343, +) + + +_KEYVALUE = _descriptor.Descriptor( + name='KeyValue', + full_name='skein.KeyValue', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.KeyValue.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.KeyValue.value', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='owner', full_name='skein.KeyValue.owner', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4345, + serialized_end=4424, +) + + +_GETRANGEREQUEST = _descriptor.Descriptor( + name='GetRangeRequest', + full_name='skein.GetRangeRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='start', full_name='skein.GetRangeRequest.start', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='end', full_name='skein.GetRangeRequest.end', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='result_type', full_name='skein.GetRangeRequest.result_type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _GETRANGEREQUEST_RESULTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4427, + serialized_end=4573, +) + + +_GETRANGERESPONSE = _descriptor.Descriptor( + name='GetRangeResponse', + full_name='skein.GetRangeResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='count', full_name='skein.GetRangeResponse.count', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='result_type', full_name='skein.GetRangeResponse.result_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='result', full_name='skein.GetRangeResponse.result', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4575, + serialized_end=4697, +) + + +_PUTKEYREQUEST = _descriptor.Descriptor( + name='PutKeyRequest', + full_name='skein.PutKeyRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.PutKeyRequest.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.PutKeyRequest.value', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='owner', full_name='skein.PutKeyRequest.owner', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_value', full_name='skein.PutKeyRequest.ignore_value', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_owner', full_name='skein.PutKeyRequest.ignore_owner', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='return_previous', full_name='skein.PutKeyRequest.return_previous', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4700, + serialized_end=4853, +) + + +_PUTKEYRESPONSE = _descriptor.Descriptor( + name='PutKeyResponse', + full_name='skein.PutKeyResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='return_previous', full_name='skein.PutKeyResponse.return_previous', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='previous', full_name='skein.PutKeyResponse.previous', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4855, + serialized_end=4931, +) + + +_DELETERANGEREQUEST = _descriptor.Descriptor( + name='DeleteRangeRequest', + full_name='skein.DeleteRangeRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='start', full_name='skein.DeleteRangeRequest.start', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='end', full_name='skein.DeleteRangeRequest.end', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='result_type', full_name='skein.DeleteRangeRequest.result_type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DELETERANGEREQUEST_RESULTTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4934, + serialized_end=5086, +) + + +_DELETERANGERESPONSE = _descriptor.Descriptor( + name='DeleteRangeResponse', + full_name='skein.DeleteRangeResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='count', full_name='skein.DeleteRangeResponse.count', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='result_type', full_name='skein.DeleteRangeResponse.result_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='result', full_name='skein.DeleteRangeResponse.result', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5089, + serialized_end=5217, +) + + +_CONDITION = _descriptor.Descriptor( + name='Condition', + full_name='skein.Condition', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.Condition.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='operator', full_name='skein.Condition.operator', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='field', full_name='skein.Condition.field', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.Condition.value', index=3, + number=4, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='owner', full_name='skein.Condition.owner', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONDITION_OPERATOR, + _CONDITION_FIELD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='rhs', full_name='skein.Condition.rhs', + index=0, containing_type=None, fields=[]), + ], + serialized_start=5220, + serialized_end=5522, +) + + +_OPREQUEST = _descriptor.Descriptor( + name='OpRequest', + full_name='skein.OpRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='get_range', full_name='skein.OpRequest.get_range', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='put_key', full_name='skein.OpRequest.put_key', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='delete_range', full_name='skein.OpRequest.delete_range', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='request', full_name='skein.OpRequest.request', + index=0, containing_type=None, fields=[]), + ], + serialized_start=5525, + serialized_end=5684, +) + + +_OPRESPONSE = _descriptor.Descriptor( + name='OpResponse', + full_name='skein.OpResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='get_range', full_name='skein.OpResponse.get_range', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='put_key', full_name='skein.OpResponse.put_key', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='delete_range', full_name='skein.OpResponse.delete_range', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='response', full_name='skein.OpResponse.response', + index=0, containing_type=None, fields=[]), + ], + serialized_start=5687, + serialized_end=5851, +) + + +_TRANSACTIONREQUEST = _descriptor.Descriptor( + name='TransactionRequest', + full_name='skein.TransactionRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='condition', full_name='skein.TransactionRequest.condition', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='on_success', full_name='skein.TransactionRequest.on_success', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='on_failure', full_name='skein.TransactionRequest.on_failure', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5854, + serialized_end=5987, +) + + +_TRANSACTIONRESPONSE = _descriptor.Descriptor( + name='TransactionResponse', + full_name='skein.TransactionResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='succeeded', full_name='skein.TransactionResponse.succeeded', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='result', full_name='skein.TransactionResponse.result', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5989, + serialized_end=6064, +) + + +_WATCHCREATEREQUEST = _descriptor.Descriptor( + name='WatchCreateRequest', + full_name='skein.WatchCreateRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='start', full_name='skein.WatchCreateRequest.start', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='end', full_name='skein.WatchCreateRequest.end', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='event_type', full_name='skein.WatchCreateRequest.event_type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _WATCHCREATEREQUEST_TYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6067, + serialized_end=6205, +) + + +_WATCHCANCELREQUEST = _descriptor.Descriptor( + name='WatchCancelRequest', + full_name='skein.WatchCancelRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='watch_id', full_name='skein.WatchCancelRequest.watch_id', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6207, + serialized_end=6245, +) + + +_WATCHREQUEST = _descriptor.Descriptor( + name='WatchRequest', + full_name='skein.WatchRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='create', full_name='skein.WatchRequest.create', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cancel', full_name='skein.WatchRequest.cancel', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='request', full_name='skein.WatchRequest.request', + index=0, containing_type=None, fields=[]), + ], + serialized_start=6247, + serialized_end=6362, +) + + +_WATCHRESPONSE = _descriptor.Descriptor( + name='WatchResponse', + full_name='skein.WatchResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='skein.WatchResponse.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='watch_id', full_name='skein.WatchResponse.watch_id', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='event', full_name='skein.WatchResponse.event', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _WATCHRESPONSE_TYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6365, + serialized_end=6524, +) + + +_CONTAINERINSTANCE = _descriptor.Descriptor( + name='ContainerInstance', + full_name='skein.ContainerInstance', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='service_name', full_name='skein.ContainerInstance.service_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='instance', full_name='skein.ContainerInstance.instance', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6526, + serialized_end=6585, +) + + +_CONTAINERSREQUEST = _descriptor.Descriptor( + name='ContainersRequest', + full_name='skein.ContainersRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='states', full_name='skein.ContainersRequest.states', index=0, + number=1, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='services', full_name='skein.ContainersRequest.services', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6587, + serialized_end=6664, +) + + +_CONTAINERSRESPONSE = _descriptor.Descriptor( + name='ContainersResponse', + full_name='skein.ContainersResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='containers', full_name='skein.ContainersResponse.containers', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6666, + serialized_end=6724, +) + + +_SCALEREQUEST = _descriptor.Descriptor( + name='ScaleRequest', + full_name='skein.ScaleRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='service_name', full_name='skein.ScaleRequest.service_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='count', full_name='skein.ScaleRequest.count', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='delta', full_name='skein.ScaleRequest.delta', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6726, + serialized_end=6792, +) + + +_ADDCONTAINERREQUEST_ENVENTRY = _descriptor.Descriptor( + name='EnvEntry', + full_name='skein.AddContainerRequest.EnvEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='key', full_name='skein.AddContainerRequest.EnvEntry.key', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='skein.AddContainerRequest.EnvEntry.value', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=_b('8\001'), + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=974, + serialized_end=1016, +) + +_ADDCONTAINERREQUEST = _descriptor.Descriptor( + name='AddContainerRequest', + full_name='skein.AddContainerRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='service_name', full_name='skein.AddContainerRequest.service_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='env', full_name='skein.AddContainerRequest.env', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_ADDCONTAINERREQUEST_ENVENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6795, + serialized_end=6932, +) + + +_SETPROGRESSREQUEST = _descriptor.Descriptor( + name='SetProgressRequest', + full_name='skein.SetProgressRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='progress', full_name='skein.SetProgressRequest.progress', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6934, + serialized_end=6972, +) + + +_PROXY = _descriptor.Descriptor( + name='Proxy', + full_name='skein.Proxy', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='route', full_name='skein.Proxy.route', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='link_name', full_name='skein.Proxy.link_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='target', full_name='skein.Proxy.target', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6974, + serialized_end=7031, +) + + +_REMOVEPROXYREQUEST = _descriptor.Descriptor( + name='RemoveProxyRequest', + full_name='skein.RemoveProxyRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='route', full_name='skein.RemoveProxyRequest.route', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7033, + serialized_end=7068, +) + + +_UIINFOREQUEST = _descriptor.Descriptor( + name='UIInfoRequest', + full_name='skein.UIInfoRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7070, + serialized_end=7085, +) + + +_UIINFORESPONSE = _descriptor.Descriptor( + name='UIInfoResponse', + full_name='skein.UIInfoResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ui_address', full_name='skein.UIInfoResponse.ui_address', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='proxy_prefix', full_name='skein.UIInfoResponse.proxy_prefix', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7087, + serialized_end=7145, +) + + +_GETPROXIESREQUEST = _descriptor.Descriptor( + name='GetProxiesRequest', + full_name='skein.GetProxiesRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7147, + serialized_end=7166, +) + + +_GETPROXIESRESPONSE = _descriptor.Descriptor( + name='GetProxiesResponse', + full_name='skein.GetProxiesResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='proxy', full_name='skein.GetProxiesResponse.proxy', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7168, + serialized_end=7217, +) + +_FINALSTATUS_TYPE.containing_type = _FINALSTATUS +_APPLICATIONSTATE_TYPE.containing_type = _APPLICATIONSTATE +_FILE.fields_by_name['source'].message_type = _URL +_FILE.fields_by_name['type'].enum_type = _FILE_TYPE +_FILE.fields_by_name['visibility'].enum_type = _FILE_VISIBILITY +_FILE_TYPE.containing_type = _FILE +_FILE_VISIBILITY.containing_type = _FILE +_SERVICE_FILESENTRY.fields_by_name['value'].message_type = _FILE +_SERVICE_FILESENTRY.containing_type = _SERVICE +_SERVICE_ENVENTRY.containing_type = _SERVICE +_SERVICE.fields_by_name['resources'].message_type = _RESOURCES +_SERVICE.fields_by_name['files'].message_type = _SERVICE_FILESENTRY +_SERVICE.fields_by_name['env'].message_type = _SERVICE_ENVENTRY +_LOG_LEVEL.containing_type = _LOG +_SECURITY.fields_by_name['cert_file'].message_type = _FILE +_SECURITY.fields_by_name['key_file'].message_type = _FILE +_SECURITY.oneofs_by_name['cert'].fields.append( + _SECURITY.fields_by_name['cert_file']) +_SECURITY.fields_by_name['cert_file'].containing_oneof = _SECURITY.oneofs_by_name['cert'] +_SECURITY.oneofs_by_name['cert'].fields.append( + _SECURITY.fields_by_name['cert_bytes']) +_SECURITY.fields_by_name['cert_bytes'].containing_oneof = _SECURITY.oneofs_by_name['cert'] +_SECURITY.oneofs_by_name['key'].fields.append( + _SECURITY.fields_by_name['key_file']) +_SECURITY.fields_by_name['key_file'].containing_oneof = _SECURITY.oneofs_by_name['key'] +_SECURITY.oneofs_by_name['key'].fields.append( + _SECURITY.fields_by_name['key_bytes']) +_SECURITY.fields_by_name['key_bytes'].containing_oneof = _SECURITY.oneofs_by_name['key'] +_MASTER_FILESENTRY.fields_by_name['value'].message_type = _FILE +_MASTER_FILESENTRY.containing_type = _MASTER +_MASTER_ENVENTRY.containing_type = _MASTER +_MASTER.fields_by_name['log_config'].message_type = _FILE +_MASTER.fields_by_name['log_level'].enum_type = _LOG_LEVEL +_MASTER.fields_by_name['security'].message_type = _SECURITY +_MASTER.fields_by_name['resources'].message_type = _RESOURCES +_MASTER.fields_by_name['files'].message_type = _MASTER_FILESENTRY +_MASTER.fields_by_name['env'].message_type = _MASTER_ENVENTRY +_APPLICATIONSPEC_SERVICESENTRY.fields_by_name['value'].message_type = _SERVICE +_APPLICATIONSPEC_SERVICESENTRY.containing_type = _APPLICATIONSPEC +_APPLICATIONSPEC.fields_by_name['acls'].message_type = _ACLS +_APPLICATIONSPEC.fields_by_name['master'].message_type = _MASTER +_APPLICATIONSPEC.fields_by_name['services'].message_type = _APPLICATIONSPEC_SERVICESENTRY +_CONTAINER.fields_by_name['state'].enum_type = _CONTAINER_STATE +_CONTAINER_STATE.containing_type = _CONTAINER +_RESOURCEUSAGEREPORT.fields_by_name['needed_resources'].message_type = _RESOURCES +_RESOURCEUSAGEREPORT.fields_by_name['reserved_resources'].message_type = _RESOURCES +_RESOURCEUSAGEREPORT.fields_by_name['used_resources'].message_type = _RESOURCES +_APPLICATIONREPORT.fields_by_name['state'].enum_type = _APPLICATIONSTATE_TYPE +_APPLICATIONREPORT.fields_by_name['final_status'].enum_type = _FINALSTATUS_TYPE +_APPLICATIONREPORT.fields_by_name['usage'].message_type = _RESOURCEUSAGEREPORT +_NODESTATE_TYPE.containing_type = _NODESTATE +_NODEREPORT.fields_by_name['state'].enum_type = _NODESTATE_TYPE +_NODEREPORT.fields_by_name['total_resources'].message_type = _RESOURCES +_NODEREPORT.fields_by_name['used_resources'].message_type = _RESOURCES +_QUEUE.fields_by_name['state'].enum_type = _QUEUE_STATE +_QUEUE_STATE.containing_type = _QUEUE +_APPLICATIONSREQUEST.fields_by_name['states'].enum_type = _APPLICATIONSTATE_TYPE +_APPLICATIONSRESPONSE.fields_by_name['reports'].message_type = _APPLICATIONREPORT +_NODESREQUEST.fields_by_name['states'].enum_type = _NODESTATE_TYPE +_NODESRESPONSE.fields_by_name['reports'].message_type = _NODEREPORT +_QUEUESRESPONSE.fields_by_name['queues'].message_type = _QUEUE +_LOGSRESPONSE_LOGSENTRY.containing_type = _LOGSRESPONSE +_LOGSRESPONSE.fields_by_name['logs'].message_type = _LOGSRESPONSE_LOGSENTRY +_SHUTDOWNREQUEST.fields_by_name['final_status'].enum_type = _FINALSTATUS_TYPE +_KEYVALUE.fields_by_name['owner'].message_type = _CONTAINERINSTANCE +_GETRANGEREQUEST.fields_by_name['result_type'].enum_type = _GETRANGEREQUEST_RESULTTYPE +_GETRANGEREQUEST_RESULTTYPE.containing_type = _GETRANGEREQUEST +_GETRANGERESPONSE.fields_by_name['result_type'].enum_type = _GETRANGEREQUEST_RESULTTYPE +_GETRANGERESPONSE.fields_by_name['result'].message_type = _KEYVALUE +_PUTKEYREQUEST.fields_by_name['owner'].message_type = _CONTAINERINSTANCE +_PUTKEYRESPONSE.fields_by_name['previous'].message_type = _KEYVALUE +_DELETERANGEREQUEST.fields_by_name['result_type'].enum_type = _DELETERANGEREQUEST_RESULTTYPE +_DELETERANGEREQUEST_RESULTTYPE.containing_type = _DELETERANGEREQUEST +_DELETERANGERESPONSE.fields_by_name['result_type'].enum_type = _DELETERANGEREQUEST_RESULTTYPE +_DELETERANGERESPONSE.fields_by_name['result'].message_type = _KEYVALUE +_CONDITION.fields_by_name['operator'].enum_type = _CONDITION_OPERATOR +_CONDITION.fields_by_name['field'].enum_type = _CONDITION_FIELD +_CONDITION.fields_by_name['owner'].message_type = _CONTAINERINSTANCE +_CONDITION_OPERATOR.containing_type = _CONDITION +_CONDITION_FIELD.containing_type = _CONDITION +_CONDITION.oneofs_by_name['rhs'].fields.append( + _CONDITION.fields_by_name['value']) +_CONDITION.fields_by_name['value'].containing_oneof = _CONDITION.oneofs_by_name['rhs'] +_CONDITION.oneofs_by_name['rhs'].fields.append( + _CONDITION.fields_by_name['owner']) +_CONDITION.fields_by_name['owner'].containing_oneof = _CONDITION.oneofs_by_name['rhs'] +_OPREQUEST.fields_by_name['get_range'].message_type = _GETRANGEREQUEST +_OPREQUEST.fields_by_name['put_key'].message_type = _PUTKEYREQUEST +_OPREQUEST.fields_by_name['delete_range'].message_type = _DELETERANGEREQUEST +_OPREQUEST.oneofs_by_name['request'].fields.append( + _OPREQUEST.fields_by_name['get_range']) +_OPREQUEST.fields_by_name['get_range'].containing_oneof = _OPREQUEST.oneofs_by_name['request'] +_OPREQUEST.oneofs_by_name['request'].fields.append( + _OPREQUEST.fields_by_name['put_key']) +_OPREQUEST.fields_by_name['put_key'].containing_oneof = _OPREQUEST.oneofs_by_name['request'] +_OPREQUEST.oneofs_by_name['request'].fields.append( + _OPREQUEST.fields_by_name['delete_range']) +_OPREQUEST.fields_by_name['delete_range'].containing_oneof = _OPREQUEST.oneofs_by_name['request'] +_OPRESPONSE.fields_by_name['get_range'].message_type = _GETRANGERESPONSE +_OPRESPONSE.fields_by_name['put_key'].message_type = _PUTKEYRESPONSE +_OPRESPONSE.fields_by_name['delete_range'].message_type = _DELETERANGERESPONSE +_OPRESPONSE.oneofs_by_name['response'].fields.append( + _OPRESPONSE.fields_by_name['get_range']) +_OPRESPONSE.fields_by_name['get_range'].containing_oneof = _OPRESPONSE.oneofs_by_name['response'] +_OPRESPONSE.oneofs_by_name['response'].fields.append( + _OPRESPONSE.fields_by_name['put_key']) +_OPRESPONSE.fields_by_name['put_key'].containing_oneof = _OPRESPONSE.oneofs_by_name['response'] +_OPRESPONSE.oneofs_by_name['response'].fields.append( + _OPRESPONSE.fields_by_name['delete_range']) +_OPRESPONSE.fields_by_name['delete_range'].containing_oneof = _OPRESPONSE.oneofs_by_name['response'] +_TRANSACTIONREQUEST.fields_by_name['condition'].message_type = _CONDITION +_TRANSACTIONREQUEST.fields_by_name['on_success'].message_type = _OPREQUEST +_TRANSACTIONREQUEST.fields_by_name['on_failure'].message_type = _OPREQUEST +_TRANSACTIONRESPONSE.fields_by_name['result'].message_type = _OPRESPONSE +_WATCHCREATEREQUEST.fields_by_name['event_type'].enum_type = _WATCHCREATEREQUEST_TYPE +_WATCHCREATEREQUEST_TYPE.containing_type = _WATCHCREATEREQUEST +_WATCHREQUEST.fields_by_name['create'].message_type = _WATCHCREATEREQUEST +_WATCHREQUEST.fields_by_name['cancel'].message_type = _WATCHCANCELREQUEST +_WATCHREQUEST.oneofs_by_name['request'].fields.append( + _WATCHREQUEST.fields_by_name['create']) +_WATCHREQUEST.fields_by_name['create'].containing_oneof = _WATCHREQUEST.oneofs_by_name['request'] +_WATCHREQUEST.oneofs_by_name['request'].fields.append( + _WATCHREQUEST.fields_by_name['cancel']) +_WATCHREQUEST.fields_by_name['cancel'].containing_oneof = _WATCHREQUEST.oneofs_by_name['request'] +_WATCHRESPONSE.fields_by_name['type'].enum_type = _WATCHRESPONSE_TYPE +_WATCHRESPONSE.fields_by_name['event'].message_type = _KEYVALUE +_WATCHRESPONSE_TYPE.containing_type = _WATCHRESPONSE +_CONTAINERSREQUEST.fields_by_name['states'].enum_type = _CONTAINER_STATE +_CONTAINERSRESPONSE.fields_by_name['containers'].message_type = _CONTAINER +_ADDCONTAINERREQUEST_ENVENTRY.containing_type = _ADDCONTAINERREQUEST +_ADDCONTAINERREQUEST.fields_by_name['env'].message_type = _ADDCONTAINERREQUEST_ENVENTRY +_GETPROXIESRESPONSE.fields_by_name['proxy'].message_type = _PROXY +DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY +DESCRIPTOR.message_types_by_name['FinalStatus'] = _FINALSTATUS +DESCRIPTOR.message_types_by_name['ApplicationState'] = _APPLICATIONSTATE +DESCRIPTOR.message_types_by_name['Resources'] = _RESOURCES +DESCRIPTOR.message_types_by_name['Url'] = _URL +DESCRIPTOR.message_types_by_name['File'] = _FILE +DESCRIPTOR.message_types_by_name['Service'] = _SERVICE +DESCRIPTOR.message_types_by_name['Acls'] = _ACLS +DESCRIPTOR.message_types_by_name['Log'] = _LOG +DESCRIPTOR.message_types_by_name['Security'] = _SECURITY +DESCRIPTOR.message_types_by_name['Master'] = _MASTER +DESCRIPTOR.message_types_by_name['ApplicationSpec'] = _APPLICATIONSPEC +DESCRIPTOR.message_types_by_name['Container'] = _CONTAINER +DESCRIPTOR.message_types_by_name['ResourceUsageReport'] = _RESOURCEUSAGEREPORT +DESCRIPTOR.message_types_by_name['ApplicationReport'] = _APPLICATIONREPORT +DESCRIPTOR.message_types_by_name['NodeState'] = _NODESTATE +DESCRIPTOR.message_types_by_name['NodeReport'] = _NODEREPORT +DESCRIPTOR.message_types_by_name['Queue'] = _QUEUE +DESCRIPTOR.message_types_by_name['Application'] = _APPLICATION +DESCRIPTOR.message_types_by_name['ApplicationsRequest'] = _APPLICATIONSREQUEST +DESCRIPTOR.message_types_by_name['ApplicationsResponse'] = _APPLICATIONSRESPONSE +DESCRIPTOR.message_types_by_name['NodesRequest'] = _NODESREQUEST +DESCRIPTOR.message_types_by_name['NodesResponse'] = _NODESRESPONSE +DESCRIPTOR.message_types_by_name['QueueRequest'] = _QUEUEREQUEST +DESCRIPTOR.message_types_by_name['QueuesResponse'] = _QUEUESRESPONSE +DESCRIPTOR.message_types_by_name['LogsRequest'] = _LOGSREQUEST +DESCRIPTOR.message_types_by_name['LogsResponse'] = _LOGSRESPONSE +DESCRIPTOR.message_types_by_name['MoveRequest'] = _MOVEREQUEST +DESCRIPTOR.message_types_by_name['KillRequest'] = _KILLREQUEST +DESCRIPTOR.message_types_by_name['ShutdownRequest'] = _SHUTDOWNREQUEST +DESCRIPTOR.message_types_by_name['KeyValue'] = _KEYVALUE +DESCRIPTOR.message_types_by_name['GetRangeRequest'] = _GETRANGEREQUEST +DESCRIPTOR.message_types_by_name['GetRangeResponse'] = _GETRANGERESPONSE +DESCRIPTOR.message_types_by_name['PutKeyRequest'] = _PUTKEYREQUEST +DESCRIPTOR.message_types_by_name['PutKeyResponse'] = _PUTKEYRESPONSE +DESCRIPTOR.message_types_by_name['DeleteRangeRequest'] = _DELETERANGEREQUEST +DESCRIPTOR.message_types_by_name['DeleteRangeResponse'] = _DELETERANGERESPONSE +DESCRIPTOR.message_types_by_name['Condition'] = _CONDITION +DESCRIPTOR.message_types_by_name['OpRequest'] = _OPREQUEST +DESCRIPTOR.message_types_by_name['OpResponse'] = _OPRESPONSE +DESCRIPTOR.message_types_by_name['TransactionRequest'] = _TRANSACTIONREQUEST +DESCRIPTOR.message_types_by_name['TransactionResponse'] = _TRANSACTIONRESPONSE +DESCRIPTOR.message_types_by_name['WatchCreateRequest'] = _WATCHCREATEREQUEST +DESCRIPTOR.message_types_by_name['WatchCancelRequest'] = _WATCHCANCELREQUEST +DESCRIPTOR.message_types_by_name['WatchRequest'] = _WATCHREQUEST +DESCRIPTOR.message_types_by_name['WatchResponse'] = _WATCHRESPONSE +DESCRIPTOR.message_types_by_name['ContainerInstance'] = _CONTAINERINSTANCE +DESCRIPTOR.message_types_by_name['ContainersRequest'] = _CONTAINERSREQUEST +DESCRIPTOR.message_types_by_name['ContainersResponse'] = _CONTAINERSRESPONSE +DESCRIPTOR.message_types_by_name['ScaleRequest'] = _SCALEREQUEST +DESCRIPTOR.message_types_by_name['AddContainerRequest'] = _ADDCONTAINERREQUEST +DESCRIPTOR.message_types_by_name['SetProgressRequest'] = _SETPROGRESSREQUEST +DESCRIPTOR.message_types_by_name['Proxy'] = _PROXY +DESCRIPTOR.message_types_by_name['RemoveProxyRequest'] = _REMOVEPROXYREQUEST +DESCRIPTOR.message_types_by_name['UIInfoRequest'] = _UIINFOREQUEST +DESCRIPTOR.message_types_by_name['UIInfoResponse'] = _UIINFORESPONSE +DESCRIPTOR.message_types_by_name['GetProxiesRequest'] = _GETPROXIESREQUEST +DESCRIPTOR.message_types_by_name['GetProxiesResponse'] = _GETPROXIESRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), { + 'DESCRIPTOR' : _EMPTY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Empty) + }) +_sym_db.RegisterMessage(Empty) + +FinalStatus = _reflection.GeneratedProtocolMessageType('FinalStatus', (_message.Message,), { + 'DESCRIPTOR' : _FINALSTATUS, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.FinalStatus) + }) +_sym_db.RegisterMessage(FinalStatus) + +ApplicationState = _reflection.GeneratedProtocolMessageType('ApplicationState', (_message.Message,), { + 'DESCRIPTOR' : _APPLICATIONSTATE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ApplicationState) + }) +_sym_db.RegisterMessage(ApplicationState) + +Resources = _reflection.GeneratedProtocolMessageType('Resources', (_message.Message,), { + 'DESCRIPTOR' : _RESOURCES, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Resources) + }) +_sym_db.RegisterMessage(Resources) + +Url = _reflection.GeneratedProtocolMessageType('Url', (_message.Message,), { + 'DESCRIPTOR' : _URL, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Url) + }) +_sym_db.RegisterMessage(Url) + +File = _reflection.GeneratedProtocolMessageType('File', (_message.Message,), { + 'DESCRIPTOR' : _FILE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.File) + }) +_sym_db.RegisterMessage(File) + +Service = _reflection.GeneratedProtocolMessageType('Service', (_message.Message,), { + + 'FilesEntry' : _reflection.GeneratedProtocolMessageType('FilesEntry', (_message.Message,), { + 'DESCRIPTOR' : _SERVICE_FILESENTRY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Service.FilesEntry) + }) + , + + 'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), { + 'DESCRIPTOR' : _SERVICE_ENVENTRY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Service.EnvEntry) + }) + , + 'DESCRIPTOR' : _SERVICE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Service) + }) +_sym_db.RegisterMessage(Service) +_sym_db.RegisterMessage(Service.FilesEntry) +_sym_db.RegisterMessage(Service.EnvEntry) + +Acls = _reflection.GeneratedProtocolMessageType('Acls', (_message.Message,), { + 'DESCRIPTOR' : _ACLS, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Acls) + }) +_sym_db.RegisterMessage(Acls) + +Log = _reflection.GeneratedProtocolMessageType('Log', (_message.Message,), { + 'DESCRIPTOR' : _LOG, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Log) + }) +_sym_db.RegisterMessage(Log) + +Security = _reflection.GeneratedProtocolMessageType('Security', (_message.Message,), { + 'DESCRIPTOR' : _SECURITY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Security) + }) +_sym_db.RegisterMessage(Security) + +Master = _reflection.GeneratedProtocolMessageType('Master', (_message.Message,), { + + 'FilesEntry' : _reflection.GeneratedProtocolMessageType('FilesEntry', (_message.Message,), { + 'DESCRIPTOR' : _MASTER_FILESENTRY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Master.FilesEntry) + }) + , + + 'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), { + 'DESCRIPTOR' : _MASTER_ENVENTRY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Master.EnvEntry) + }) + , + 'DESCRIPTOR' : _MASTER, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Master) + }) +_sym_db.RegisterMessage(Master) +_sym_db.RegisterMessage(Master.FilesEntry) +_sym_db.RegisterMessage(Master.EnvEntry) + +ApplicationSpec = _reflection.GeneratedProtocolMessageType('ApplicationSpec', (_message.Message,), { + + 'ServicesEntry' : _reflection.GeneratedProtocolMessageType('ServicesEntry', (_message.Message,), { + 'DESCRIPTOR' : _APPLICATIONSPEC_SERVICESENTRY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ApplicationSpec.ServicesEntry) + }) + , + 'DESCRIPTOR' : _APPLICATIONSPEC, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ApplicationSpec) + }) +_sym_db.RegisterMessage(ApplicationSpec) +_sym_db.RegisterMessage(ApplicationSpec.ServicesEntry) + +Container = _reflection.GeneratedProtocolMessageType('Container', (_message.Message,), { + 'DESCRIPTOR' : _CONTAINER, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Container) + }) +_sym_db.RegisterMessage(Container) + +ResourceUsageReport = _reflection.GeneratedProtocolMessageType('ResourceUsageReport', (_message.Message,), { + 'DESCRIPTOR' : _RESOURCEUSAGEREPORT, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ResourceUsageReport) + }) +_sym_db.RegisterMessage(ResourceUsageReport) + +ApplicationReport = _reflection.GeneratedProtocolMessageType('ApplicationReport', (_message.Message,), { + 'DESCRIPTOR' : _APPLICATIONREPORT, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ApplicationReport) + }) +_sym_db.RegisterMessage(ApplicationReport) + +NodeState = _reflection.GeneratedProtocolMessageType('NodeState', (_message.Message,), { + 'DESCRIPTOR' : _NODESTATE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.NodeState) + }) +_sym_db.RegisterMessage(NodeState) + +NodeReport = _reflection.GeneratedProtocolMessageType('NodeReport', (_message.Message,), { + 'DESCRIPTOR' : _NODEREPORT, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.NodeReport) + }) +_sym_db.RegisterMessage(NodeReport) + +Queue = _reflection.GeneratedProtocolMessageType('Queue', (_message.Message,), { + 'DESCRIPTOR' : _QUEUE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Queue) + }) +_sym_db.RegisterMessage(Queue) + +Application = _reflection.GeneratedProtocolMessageType('Application', (_message.Message,), { + 'DESCRIPTOR' : _APPLICATION, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Application) + }) +_sym_db.RegisterMessage(Application) + +ApplicationsRequest = _reflection.GeneratedProtocolMessageType('ApplicationsRequest', (_message.Message,), { + 'DESCRIPTOR' : _APPLICATIONSREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ApplicationsRequest) + }) +_sym_db.RegisterMessage(ApplicationsRequest) + +ApplicationsResponse = _reflection.GeneratedProtocolMessageType('ApplicationsResponse', (_message.Message,), { + 'DESCRIPTOR' : _APPLICATIONSRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ApplicationsResponse) + }) +_sym_db.RegisterMessage(ApplicationsResponse) + +NodesRequest = _reflection.GeneratedProtocolMessageType('NodesRequest', (_message.Message,), { + 'DESCRIPTOR' : _NODESREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.NodesRequest) + }) +_sym_db.RegisterMessage(NodesRequest) + +NodesResponse = _reflection.GeneratedProtocolMessageType('NodesResponse', (_message.Message,), { + 'DESCRIPTOR' : _NODESRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.NodesResponse) + }) +_sym_db.RegisterMessage(NodesResponse) + +QueueRequest = _reflection.GeneratedProtocolMessageType('QueueRequest', (_message.Message,), { + 'DESCRIPTOR' : _QUEUEREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.QueueRequest) + }) +_sym_db.RegisterMessage(QueueRequest) + +QueuesResponse = _reflection.GeneratedProtocolMessageType('QueuesResponse', (_message.Message,), { + 'DESCRIPTOR' : _QUEUESRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.QueuesResponse) + }) +_sym_db.RegisterMessage(QueuesResponse) + +LogsRequest = _reflection.GeneratedProtocolMessageType('LogsRequest', (_message.Message,), { + 'DESCRIPTOR' : _LOGSREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.LogsRequest) + }) +_sym_db.RegisterMessage(LogsRequest) + +LogsResponse = _reflection.GeneratedProtocolMessageType('LogsResponse', (_message.Message,), { + + 'LogsEntry' : _reflection.GeneratedProtocolMessageType('LogsEntry', (_message.Message,), { + 'DESCRIPTOR' : _LOGSRESPONSE_LOGSENTRY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.LogsResponse.LogsEntry) + }) + , + 'DESCRIPTOR' : _LOGSRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.LogsResponse) + }) +_sym_db.RegisterMessage(LogsResponse) +_sym_db.RegisterMessage(LogsResponse.LogsEntry) + +MoveRequest = _reflection.GeneratedProtocolMessageType('MoveRequest', (_message.Message,), { + 'DESCRIPTOR' : _MOVEREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.MoveRequest) + }) +_sym_db.RegisterMessage(MoveRequest) + +KillRequest = _reflection.GeneratedProtocolMessageType('KillRequest', (_message.Message,), { + 'DESCRIPTOR' : _KILLREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.KillRequest) + }) +_sym_db.RegisterMessage(KillRequest) + +ShutdownRequest = _reflection.GeneratedProtocolMessageType('ShutdownRequest', (_message.Message,), { + 'DESCRIPTOR' : _SHUTDOWNREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ShutdownRequest) + }) +_sym_db.RegisterMessage(ShutdownRequest) + +KeyValue = _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), { + 'DESCRIPTOR' : _KEYVALUE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.KeyValue) + }) +_sym_db.RegisterMessage(KeyValue) + +GetRangeRequest = _reflection.GeneratedProtocolMessageType('GetRangeRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETRANGEREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.GetRangeRequest) + }) +_sym_db.RegisterMessage(GetRangeRequest) + +GetRangeResponse = _reflection.GeneratedProtocolMessageType('GetRangeResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETRANGERESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.GetRangeResponse) + }) +_sym_db.RegisterMessage(GetRangeResponse) + +PutKeyRequest = _reflection.GeneratedProtocolMessageType('PutKeyRequest', (_message.Message,), { + 'DESCRIPTOR' : _PUTKEYREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.PutKeyRequest) + }) +_sym_db.RegisterMessage(PutKeyRequest) + +PutKeyResponse = _reflection.GeneratedProtocolMessageType('PutKeyResponse', (_message.Message,), { + 'DESCRIPTOR' : _PUTKEYRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.PutKeyResponse) + }) +_sym_db.RegisterMessage(PutKeyResponse) + +DeleteRangeRequest = _reflection.GeneratedProtocolMessageType('DeleteRangeRequest', (_message.Message,), { + 'DESCRIPTOR' : _DELETERANGEREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.DeleteRangeRequest) + }) +_sym_db.RegisterMessage(DeleteRangeRequest) + +DeleteRangeResponse = _reflection.GeneratedProtocolMessageType('DeleteRangeResponse', (_message.Message,), { + 'DESCRIPTOR' : _DELETERANGERESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.DeleteRangeResponse) + }) +_sym_db.RegisterMessage(DeleteRangeResponse) + +Condition = _reflection.GeneratedProtocolMessageType('Condition', (_message.Message,), { + 'DESCRIPTOR' : _CONDITION, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Condition) + }) +_sym_db.RegisterMessage(Condition) + +OpRequest = _reflection.GeneratedProtocolMessageType('OpRequest', (_message.Message,), { + 'DESCRIPTOR' : _OPREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.OpRequest) + }) +_sym_db.RegisterMessage(OpRequest) + +OpResponse = _reflection.GeneratedProtocolMessageType('OpResponse', (_message.Message,), { + 'DESCRIPTOR' : _OPRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.OpResponse) + }) +_sym_db.RegisterMessage(OpResponse) + +TransactionRequest = _reflection.GeneratedProtocolMessageType('TransactionRequest', (_message.Message,), { + 'DESCRIPTOR' : _TRANSACTIONREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.TransactionRequest) + }) +_sym_db.RegisterMessage(TransactionRequest) + +TransactionResponse = _reflection.GeneratedProtocolMessageType('TransactionResponse', (_message.Message,), { + 'DESCRIPTOR' : _TRANSACTIONRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.TransactionResponse) + }) +_sym_db.RegisterMessage(TransactionResponse) + +WatchCreateRequest = _reflection.GeneratedProtocolMessageType('WatchCreateRequest', (_message.Message,), { + 'DESCRIPTOR' : _WATCHCREATEREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.WatchCreateRequest) + }) +_sym_db.RegisterMessage(WatchCreateRequest) + +WatchCancelRequest = _reflection.GeneratedProtocolMessageType('WatchCancelRequest', (_message.Message,), { + 'DESCRIPTOR' : _WATCHCANCELREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.WatchCancelRequest) + }) +_sym_db.RegisterMessage(WatchCancelRequest) + +WatchRequest = _reflection.GeneratedProtocolMessageType('WatchRequest', (_message.Message,), { + 'DESCRIPTOR' : _WATCHREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.WatchRequest) + }) +_sym_db.RegisterMessage(WatchRequest) + +WatchResponse = _reflection.GeneratedProtocolMessageType('WatchResponse', (_message.Message,), { + 'DESCRIPTOR' : _WATCHRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.WatchResponse) + }) +_sym_db.RegisterMessage(WatchResponse) + +ContainerInstance = _reflection.GeneratedProtocolMessageType('ContainerInstance', (_message.Message,), { + 'DESCRIPTOR' : _CONTAINERINSTANCE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ContainerInstance) + }) +_sym_db.RegisterMessage(ContainerInstance) + +ContainersRequest = _reflection.GeneratedProtocolMessageType('ContainersRequest', (_message.Message,), { + 'DESCRIPTOR' : _CONTAINERSREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ContainersRequest) + }) +_sym_db.RegisterMessage(ContainersRequest) + +ContainersResponse = _reflection.GeneratedProtocolMessageType('ContainersResponse', (_message.Message,), { + 'DESCRIPTOR' : _CONTAINERSRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ContainersResponse) + }) +_sym_db.RegisterMessage(ContainersResponse) + +ScaleRequest = _reflection.GeneratedProtocolMessageType('ScaleRequest', (_message.Message,), { + 'DESCRIPTOR' : _SCALEREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.ScaleRequest) + }) +_sym_db.RegisterMessage(ScaleRequest) + +AddContainerRequest = _reflection.GeneratedProtocolMessageType('AddContainerRequest', (_message.Message,), { + + 'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), { + 'DESCRIPTOR' : _ADDCONTAINERREQUEST_ENVENTRY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.AddContainerRequest.EnvEntry) + }) + , + 'DESCRIPTOR' : _ADDCONTAINERREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.AddContainerRequest) + }) +_sym_db.RegisterMessage(AddContainerRequest) +_sym_db.RegisterMessage(AddContainerRequest.EnvEntry) + +SetProgressRequest = _reflection.GeneratedProtocolMessageType('SetProgressRequest', (_message.Message,), { + 'DESCRIPTOR' : _SETPROGRESSREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.SetProgressRequest) + }) +_sym_db.RegisterMessage(SetProgressRequest) + +Proxy = _reflection.GeneratedProtocolMessageType('Proxy', (_message.Message,), { + 'DESCRIPTOR' : _PROXY, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.Proxy) + }) +_sym_db.RegisterMessage(Proxy) + +RemoveProxyRequest = _reflection.GeneratedProtocolMessageType('RemoveProxyRequest', (_message.Message,), { + 'DESCRIPTOR' : _REMOVEPROXYREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.RemoveProxyRequest) + }) +_sym_db.RegisterMessage(RemoveProxyRequest) + +UIInfoRequest = _reflection.GeneratedProtocolMessageType('UIInfoRequest', (_message.Message,), { + 'DESCRIPTOR' : _UIINFOREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.UIInfoRequest) + }) +_sym_db.RegisterMessage(UIInfoRequest) + +UIInfoResponse = _reflection.GeneratedProtocolMessageType('UIInfoResponse', (_message.Message,), { + 'DESCRIPTOR' : _UIINFORESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.UIInfoResponse) + }) +_sym_db.RegisterMessage(UIInfoResponse) + +GetProxiesRequest = _reflection.GeneratedProtocolMessageType('GetProxiesRequest', (_message.Message,), { + 'DESCRIPTOR' : _GETPROXIESREQUEST, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.GetProxiesRequest) + }) +_sym_db.RegisterMessage(GetProxiesRequest) + +GetProxiesResponse = _reflection.GeneratedProtocolMessageType('GetProxiesResponse', (_message.Message,), { + 'DESCRIPTOR' : _GETPROXIESRESPONSE, + '__module__' : 'skein_pb2' + # @@protoc_insertion_point(class_scope:skein.GetProxiesResponse) + }) +_sym_db.RegisterMessage(GetProxiesResponse) + + +DESCRIPTOR._options = None +_SERVICE_FILESENTRY._options = None +_SERVICE_ENVENTRY._options = None +_MASTER_FILESENTRY._options = None +_MASTER_ENVENTRY._options = None +_APPLICATIONSPEC_SERVICESENTRY._options = None +_LOGSRESPONSE_LOGSENTRY._options = None +_ADDCONTAINERREQUEST_ENVENTRY._options = None + +_DRIVER = _descriptor.ServiceDescriptor( + name='Driver', + full_name='skein.Driver', + file=DESCRIPTOR, + index=0, + serialized_options=None, + serialized_start=7220, + serialized_end=7879, + methods=[ + _descriptor.MethodDescriptor( + name='ping', + full_name='skein.Driver.ping', + index=0, + containing_service=None, + input_type=_EMPTY, + output_type=_EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getStatus', + full_name='skein.Driver.getStatus', + index=1, + containing_service=None, + input_type=_APPLICATION, + output_type=_APPLICATIONREPORT, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getApplications', + full_name='skein.Driver.getApplications', + index=2, + containing_service=None, + input_type=_APPLICATIONSREQUEST, + output_type=_APPLICATIONSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getNodes', + full_name='skein.Driver.getNodes', + index=3, + containing_service=None, + input_type=_NODESREQUEST, + output_type=_NODESRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getQueue', + full_name='skein.Driver.getQueue', + index=4, + containing_service=None, + input_type=_QUEUEREQUEST, + output_type=_QUEUE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getChildQueues', + full_name='skein.Driver.getChildQueues', + index=5, + containing_service=None, + input_type=_QUEUEREQUEST, + output_type=_QUEUESRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getAllQueues', + full_name='skein.Driver.getAllQueues', + index=6, + containing_service=None, + input_type=_EMPTY, + output_type=_QUEUESRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='moveApplication', + full_name='skein.Driver.moveApplication', + index=7, + containing_service=None, + input_type=_MOVEREQUEST, + output_type=_EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='submit', + full_name='skein.Driver.submit', + index=8, + containing_service=None, + input_type=_APPLICATIONSPEC, + output_type=_APPLICATION, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='waitForStart', + full_name='skein.Driver.waitForStart', + index=9, + containing_service=None, + input_type=_APPLICATION, + output_type=_APPLICATIONREPORT, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='kill', + full_name='skein.Driver.kill', + index=10, + containing_service=None, + input_type=_KILLREQUEST, + output_type=_EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getLogs', + full_name='skein.Driver.getLogs', + index=11, + containing_service=None, + input_type=_LOGSREQUEST, + output_type=_LOGSRESPONSE, + serialized_options=None, + ), +]) +_sym_db.RegisterServiceDescriptor(_DRIVER) + +DESCRIPTOR.services_by_name['Driver'] = _DRIVER + + +_APPMASTER = _descriptor.ServiceDescriptor( + name='AppMaster', + full_name='skein.AppMaster', + file=DESCRIPTOR, + index=1, + serialized_options=None, + serialized_start=7882, + serialized_end=8835, + methods=[ + _descriptor.MethodDescriptor( + name='shutdown', + full_name='skein.AppMaster.shutdown', + index=0, + containing_service=None, + input_type=_SHUTDOWNREQUEST, + output_type=_EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetRange', + full_name='skein.AppMaster.GetRange', + index=1, + containing_service=None, + input_type=_GETRANGEREQUEST, + output_type=_GETRANGERESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='PutKey', + full_name='skein.AppMaster.PutKey', + index=2, + containing_service=None, + input_type=_PUTKEYREQUEST, + output_type=_PUTKEYRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='DeleteRange', + full_name='skein.AppMaster.DeleteRange', + index=3, + containing_service=None, + input_type=_DELETERANGEREQUEST, + output_type=_DELETERANGERESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='Transaction', + full_name='skein.AppMaster.Transaction', + index=4, + containing_service=None, + input_type=_TRANSACTIONREQUEST, + output_type=_TRANSACTIONRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='Watch', + full_name='skein.AppMaster.Watch', + index=5, + containing_service=None, + input_type=_WATCHREQUEST, + output_type=_WATCHRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getApplicationSpec', + full_name='skein.AppMaster.getApplicationSpec', + index=6, + containing_service=None, + input_type=_EMPTY, + output_type=_APPLICATIONSPEC, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='getContainers', + full_name='skein.AppMaster.getContainers', + index=7, + containing_service=None, + input_type=_CONTAINERSREQUEST, + output_type=_CONTAINERSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='killContainer', + full_name='skein.AppMaster.killContainer', + index=8, + containing_service=None, + input_type=_CONTAINERINSTANCE, + output_type=_EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='scale', + full_name='skein.AppMaster.scale', + index=9, + containing_service=None, + input_type=_SCALEREQUEST, + output_type=_CONTAINERSRESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='addContainer', + full_name='skein.AppMaster.addContainer', + index=10, + containing_service=None, + input_type=_ADDCONTAINERREQUEST, + output_type=_CONTAINER, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='SetProgress', + full_name='skein.AppMaster.SetProgress', + index=11, + containing_service=None, + input_type=_SETPROGRESSREQUEST, + output_type=_EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='AddProxy', + full_name='skein.AppMaster.AddProxy', + index=12, + containing_service=None, + input_type=_PROXY, + output_type=_EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='RemoveProxy', + full_name='skein.AppMaster.RemoveProxy', + index=13, + containing_service=None, + input_type=_REMOVEPROXYREQUEST, + output_type=_EMPTY, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='UiInfo', + full_name='skein.AppMaster.UiInfo', + index=14, + containing_service=None, + input_type=_UIINFOREQUEST, + output_type=_UIINFORESPONSE, + serialized_options=None, + ), + _descriptor.MethodDescriptor( + name='GetProxies', + full_name='skein.AppMaster.GetProxies', + index=15, + containing_service=None, + input_type=_GETPROXIESREQUEST, + output_type=_GETPROXIESRESPONSE, + serialized_options=None, + ), +]) +_sym_db.RegisterServiceDescriptor(_APPMASTER) + +DESCRIPTOR.services_by_name['AppMaster'] = _APPMASTER + +# @@protoc_insertion_point(module_scope) From 5fe9f54e4dc7b966a4e1bc1baaf411a2bc7a579e Mon Sep 17 00:00:00 2001 From: georgepachitariu Date: Thu, 12 Mar 2020 16:51:49 +0100 Subject: [PATCH 2/8] I fixed a problem --- java/src/main/java/com/anaconda/skein/Driver.java | 4 ++-- skein/model.py | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/java/src/main/java/com/anaconda/skein/Driver.java b/java/src/main/java/com/anaconda/skein/Driver.java index b967c516..aa7255ad 100644 --- a/java/src/main/java/com/anaconda/skein/Driver.java +++ b/java/src/main/java/com/anaconda/skein/Driver.java @@ -346,14 +346,14 @@ private void killApplicationInner(YarnClient yarnClient, FileSystem fs, /** Start a new application. **/ public ApplicationId submitApplication(final Model.ApplicationSpec spec) throws IOException, YarnException, InterruptedException { + final Credentials cred = UserGroupInformation.getCurrentUser().getCredentials(); if (spec.getUser().isEmpty()) { - return submitApplicationInner(defaultYarnClient, defaultFileSystem, spec, null); + return submitApplicationInner(defaultYarnClient, defaultFileSystem, spec, cred); } else { // We need to obtain additional delegation token from systems while // we are authenticated with kerberos, before we impersonate the user. - final Credentials cred = UserGroupInformation.getCurrentUser().getCredentials(); for(CredentialProvider c : spec.getCredentialProviders()) { c.updateCredentials(cred); } diff --git a/skein/model.py b/skein/model.py index 3caab1cd..da4b3cce 100644 --- a/skein/model.py +++ b/skein/model.py @@ -1276,7 +1276,7 @@ def _validate(self): self._check_is_type('node_label', str) self._check_is_set_of('tags', str) self._check_is_list_of('file_systems', str) - #self._check_is_list_of('credential_providers', CredentialProviderSpec) + self._check_is_list_of('credential_providers', CredentialProviderSpec) self._check_is_bounded_int('max_attempts', min=1) self._check_is_type('acls', ACLs) self.acls._validate() @@ -1333,9 +1333,6 @@ def from_dict(cls, obj, **kwargs): if master is not None and isinstance(master, dict): master = Master.from_dict(master, _origin=_origin) - #print("George was here") - #raise Exception("George - model.py ;): " + str(len(credential_providers))) - credential_providers = obj.pop('credential_providers', None) if credential_providers is not None and isinstance(credential_providers, list): credential_providers = [ @@ -1355,6 +1352,7 @@ def from_protobuf(cls, obj): node_label=obj.node_label, tags=set(obj.tags), file_systems=list(obj.file_systems), + credential_providers=list(obj.credential_providers), max_attempts=min(1, obj.max_attempts), acls=ACLs.from_protobuf(obj.acls), master=Master.from_protobuf(obj.master), From 7bebfef9fa7239156f168e903810eeaae7ee3f6b Mon Sep 17 00:00:00 2001 From: georgepachitariu Date: Thu, 12 Mar 2020 17:08:33 +0100 Subject: [PATCH 3/8] I should not have added this file --- test/skein_pb2.py | 4402 --------------------------------------------- 1 file changed, 4402 deletions(-) delete mode 100644 test/skein_pb2.py diff --git a/test/skein_pb2.py b/test/skein_pb2.py deleted file mode 100644 index 39f3fcb5..00000000 --- a/test/skein_pb2.py +++ /dev/null @@ -1,4402 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: skein.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='skein.proto', - package='skein', - syntax='proto3', - serialized_options=_b('\n\022com.anaconda.skeinB\003MsgH\003'), - serialized_pb=_b('\n\x0bskein.proto\x12\x05skein\"\x07\n\x05\x45mpty\"K\n\x0b\x46inalStatus\"<\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\n\n\x06KILLED\x10\x03\"\x83\x01\n\x10\x41pplicationState\"o\n\x04Type\x12\x07\n\x03NEW\x10\x00\x12\x0e\n\nNEW_SAVING\x10\x01\x12\r\n\tSUBMITTED\x10\x02\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x03\x12\x0b\n\x07RUNNING\x10\x04\x12\x0c\n\x08\x46INISHED\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\x12\n\n\x06KILLED\x10\x07\"H\n\tResources\x12\x0e\n\x06memory\x18\x01 \x01(\x05\x12\x0e\n\x06vcores\x18\x02 \x01(\x05\x12\x0c\n\x04gpus\x18\x03 \x01(\x03\x12\r\n\x05\x66pgas\x18\x04 \x01(\x03\"?\n\x03Url\x12\x0e\n\x06scheme\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\x05\x12\x0c\n\x04\x66ile\x18\x04 \x01(\t\"\xe6\x01\n\x04\x46ile\x12\x1a\n\x06source\x18\x01 \x01(\x0b\x32\n.skein.Url\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.skein.File.Type\x12*\n\nvisibility\x18\x03 \x01(\x0e\x32\x16.skein.File.Visibility\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x11\n\ttimestamp\x18\x05 \x01(\x03\"\x1d\n\x04Type\x12\x08\n\x04\x46ILE\x10\x00\x12\x0b\n\x07\x41RCHIVE\x10\x01\"6\n\nVisibility\x12\n\n\x06PUBLIC\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01\x12\x0f\n\x0b\x41PPLICATION\x10\x02\"\x91\x03\n\x07Service\x12\x11\n\tinstances\x18\x01 \x01(\x05\x12\x12\n\nnode_label\x18\x02 \x01(\t\x12\r\n\x05nodes\x18\x03 \x03(\t\x12\r\n\x05racks\x18\x04 \x03(\t\x12\x16\n\x0erelax_locality\x18\x05 \x01(\x08\x12\x14\n\x0cmax_restarts\x18\x06 \x01(\x05\x12\x16\n\x0e\x61llow_failures\x18\x07 \x01(\x08\x12#\n\tresources\x18\x08 \x01(\x0b\x32\x10.skein.Resources\x12(\n\x05\x66iles\x18\t \x03(\x0b\x32\x19.skein.Service.FilesEntry\x12$\n\x03\x65nv\x18\n \x03(\x0b\x32\x17.skein.Service.EnvEntry\x12\x0e\n\x06script\x18\x0b \x01(\t\x12\x0f\n\x07\x64\x65pends\x18\x0c \x03(\t\x1a\x39\n\nFilesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0b\x32\x0b.skein.File:\x02\x38\x01\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"~\n\x04\x41\x63ls\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\x12\x12\n\nview_users\x18\x02 \x03(\t\x12\x13\n\x0bview_groups\x18\x03 \x03(\t\x12\x14\n\x0cmodify_users\x18\x04 \x03(\t\x12\x15\n\rmodify_groups\x18\x05 \x03(\t\x12\x10\n\x08ui_users\x18\x06 \x03(\t\"`\n\x03Log\"Y\n\x05Level\x12\x08\n\x04INFO\x10\x00\x12\x07\n\x03\x41LL\x10\x01\x12\t\n\x05TRACE\x10\x02\x12\t\n\x05\x44\x45\x42UG\x10\x03\x12\x08\n\x04WARN\x10\x04\x12\t\n\x05\x45RROR\x10\x05\x12\t\n\x05\x46\x41TAL\x10\x06\x12\x07\n\x03OFF\x10\x07\"\x87\x01\n\x08Security\x12 \n\tcert_file\x18\x01 \x01(\x0b\x32\x0b.skein.FileH\x00\x12\x14\n\ncert_bytes\x18\x02 \x01(\x0cH\x00\x12\x1f\n\x08key_file\x18\x03 \x01(\x0b\x32\x0b.skein.FileH\x01\x12\x13\n\tkey_bytes\x18\x04 \x01(\x0cH\x01\x42\x06\n\x04\x63\x65rtB\x05\n\x03key\"\xdb\x02\n\x06Master\x12\x1f\n\nlog_config\x18\x01 \x01(\x0b\x32\x0b.skein.File\x12#\n\tlog_level\x18\x02 \x01(\x0e\x32\x10.skein.Log.Level\x12!\n\x08security\x18\x03 \x01(\x0b\x32\x0f.skein.Security\x12#\n\tresources\x18\x04 \x01(\x0b\x32\x10.skein.Resources\x12\'\n\x05\x66iles\x18\x05 \x03(\x0b\x32\x18.skein.Master.FilesEntry\x12#\n\x03\x65nv\x18\x06 \x03(\x0b\x32\x16.skein.Master.EnvEntry\x12\x0e\n\x06script\x18\x07 \x01(\t\x1a\x39\n\nFilesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1a\n\x05value\x18\x02 \x01(\x0b\x32\x0b.skein.File:\x02\x38\x01\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xd9\x02\n\x0f\x41pplicationSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05queue\x18\x02 \x01(\t\x12\x0c\n\x04user\x18\x03 \x01(\t\x12\x12\n\nnode_label\x18\x04 \x01(\t\x12\x14\n\x0cmax_attempts\x18\x05 \x01(\x05\x12\x0c\n\x04tags\x18\x06 \x03(\t\x12\x14\n\x0c\x66ile_systems\x18\x07 \x03(\t\x12\x1a\n\x12\x64\x65legation_systems\x18\x08 \x03(\t\x12\x19\n\x04\x61\x63ls\x18\t \x01(\x0b\x32\x0b.skein.Acls\x12\x1d\n\x06master\x18\n \x01(\x0b\x32\r.skein.Master\x12\x36\n\x08services\x18\x0b \x03(\x0b\x32$.skein.ApplicationSpec.ServicesEntry\x1a?\n\rServicesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.skein.Service:\x02\x38\x01\"\xad\x02\n\tContainer\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\x10\n\x08instance\x18\x02 \x01(\x05\x12%\n\x05state\x18\x03 \x01(\x0e\x32\x16.skein.Container.State\x12\x19\n\x11yarn_container_id\x18\x04 \x01(\t\x12\x1e\n\x16yarn_node_http_address\x18\x05 \x01(\t\x12\x12\n\nstart_time\x18\x06 \x01(\x03\x12\x13\n\x0b\x66inish_time\x18\x07 \x01(\x03\x12\x14\n\x0c\x65xit_message\x18\x08 \x01(\t\"W\n\x05State\x12\x0b\n\x07WAITING\x10\x00\x12\r\n\tREQUESTED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tSUCCEEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\n\n\x06KILLED\x10\x05\"\xe5\x01\n\x13ResourceUsageReport\x12\x16\n\x0ememory_seconds\x18\x01 \x01(\x03\x12\x15\n\rvcore_seconds\x18\x02 \x01(\x03\x12\x1b\n\x13num_used_containers\x18\x03 \x01(\x03\x12*\n\x10needed_resources\x18\x04 \x01(\x0b\x32\x10.skein.Resources\x12,\n\x12reserved_resources\x18\x05 \x01(\x0b\x32\x10.skein.Resources\x12(\n\x0eused_resources\x18\x06 \x01(\x0b\x32\x10.skein.Resources\"\xe1\x02\n\x11\x41pplicationReport\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04user\x18\x03 \x01(\t\x12\r\n\x05queue\x18\x04 \x01(\t\x12\x0c\n\x04tags\x18\x05 \x03(\t\x12\x0c\n\x04host\x18\x06 \x01(\t\x12\x0c\n\x04port\x18\x07 \x01(\x05\x12\x14\n\x0ctracking_url\x18\x08 \x01(\t\x12+\n\x05state\x18\t \x01(\x0e\x32\x1c.skein.ApplicationState.Type\x12-\n\x0c\x66inal_status\x18\n \x01(\x0e\x32\x17.skein.FinalStatus.Type\x12\x10\n\x08progress\x18\x0b \x01(\x02\x12)\n\x05usage\x18\x0c \x01(\x0b\x32\x1a.skein.ResourceUsageReport\x12\x13\n\x0b\x64iagnostics\x18\r \x01(\t\x12\x12\n\nstart_time\x18\x0e \x01(\x03\x12\x13\n\x0b\x66inish_time\x18\x0f \x01(\x03\"\x87\x01\n\tNodeState\"z\n\x04Type\x12\x12\n\x0e\x44\x45\x43OMMISSIONED\x10\x00\x12\x13\n\x0f\x44\x45\x43OMMISSIONING\x10\x01\x12\x08\n\x04LOST\x10\x02\x12\x07\n\x03NEW\x10\x03\x12\x0c\n\x08REBOOTED\x10\x04\x12\x0b\n\x07RUNNING\x10\x05\x12\x0c\n\x08SHUTDOWN\x10\x06\x12\r\n\tUNHEALTHY\x10\x07\"\xe3\x01\n\nNodeReport\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0chttp_address\x18\x02 \x01(\t\x12\x11\n\track_name\x18\x03 \x01(\t\x12\x0e\n\x06labels\x18\x04 \x03(\t\x12$\n\x05state\x18\x05 \x01(\x0e\x32\x15.skein.NodeState.Type\x12\x15\n\rhealth_report\x18\x06 \x01(\t\x12)\n\x0ftotal_resources\x18\x07 \x01(\x0b\x32\x10.skein.Resources\x12(\n\x0eused_resources\x18\x08 \x01(\x0b\x32\x10.skein.Resources\"\xca\x01\n\x05Queue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05state\x18\x02 \x01(\x0e\x32\x12.skein.Queue.State\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x02\x12\x14\n\x0cmax_capacity\x18\x04 \x01(\x02\x12\x14\n\x0cpercent_used\x18\x05 \x01(\x02\x12\x13\n\x0bnode_labels\x18\x06 \x03(\t\x12\x1a\n\x12\x64\x65\x66\x61ult_node_label\x18\x07 \x01(\t\"!\n\x05State\x12\x0b\n\x07RUNNING\x10\x00\x12\x0b\n\x07STOPPED\x10\x01\"\x19\n\x0b\x41pplication\x12\n\n\x02id\x18\x01 \x01(\t\"\xc8\x01\n\x13\x41pplicationsRequest\x12,\n\x06states\x18\x01 \x03(\x0e\x32\x1c.skein.ApplicationState.Type\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04user\x18\x03 \x01(\t\x12\r\n\x05queue\x18\x04 \x01(\t\x12\x15\n\rstarted_begin\x18\x05 \x01(\x03\x12\x13\n\x0bstarted_end\x18\x06 \x01(\x03\x12\x16\n\x0e\x66inished_begin\x18\x07 \x01(\x03\x12\x14\n\x0c\x66inished_end\x18\x08 \x01(\x03\"A\n\x14\x41pplicationsResponse\x12)\n\x07reports\x18\x01 \x03(\x0b\x32\x18.skein.ApplicationReport\"5\n\x0cNodesRequest\x12%\n\x06states\x18\x01 \x03(\x0e\x32\x15.skein.NodeState.Type\"3\n\rNodesResponse\x12\"\n\x07reports\x18\x01 \x03(\x0b\x32\x11.skein.NodeReport\"\x1c\n\x0cQueueRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\".\n\x0eQueuesResponse\x12\x1c\n\x06queues\x18\x01 \x03(\x0b\x32\x0c.skein.Queue\"\'\n\x0bLogsRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04user\x18\x02 \x01(\t\"h\n\x0cLogsResponse\x12+\n\x04logs\x18\x02 \x03(\x0b\x32\x1d.skein.LogsResponse.LogsEntry\x1a+\n\tLogsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"(\n\x0bMoveRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\r\n\x05queue\x18\x02 \x01(\t\"\'\n\x0bKillRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04user\x18\x02 \x01(\t\"U\n\x0fShutdownRequest\x12-\n\x0c\x66inal_status\x18\x01 \x01(\x0e\x32\x17.skein.FinalStatus.Type\x12\x13\n\x0b\x64iagnostics\x18\x02 \x01(\t\"O\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\'\n\x05owner\x18\x03 \x01(\x0b\x32\x18.skein.ContainerInstance\"\x92\x01\n\x0fGetRangeRequest\x12\r\n\x05start\x18\x01 \x01(\t\x12\x0b\n\x03\x65nd\x18\x02 \x01(\t\x12\x36\n\x0bresult_type\x18\x03 \x01(\x0e\x32!.skein.GetRangeRequest.ResultType\"+\n\nResultType\x12\t\n\x05ITEMS\x10\x00\x12\x08\n\x04KEYS\x10\x01\x12\x08\n\x04NONE\x10\x02\"z\n\x10GetRangeResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x36\n\x0bresult_type\x18\x02 \x01(\x0e\x32!.skein.GetRangeRequest.ResultType\x12\x1f\n\x06result\x18\x03 \x03(\x0b\x32\x0f.skein.KeyValue\"\x99\x01\n\rPutKeyRequest\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\'\n\x05owner\x18\x03 \x01(\x0b\x32\x18.skein.ContainerInstance\x12\x14\n\x0cignore_value\x18\x04 \x01(\x08\x12\x14\n\x0cignore_owner\x18\x05 \x01(\x08\x12\x17\n\x0freturn_previous\x18\x06 \x01(\x08\"L\n\x0ePutKeyResponse\x12\x17\n\x0freturn_previous\x18\x01 \x01(\x08\x12!\n\x08previous\x18\x02 \x01(\x0b\x32\x0f.skein.KeyValue\"\x98\x01\n\x12\x44\x65leteRangeRequest\x12\r\n\x05start\x18\x01 \x01(\t\x12\x0b\n\x03\x65nd\x18\x02 \x01(\t\x12\x39\n\x0bresult_type\x18\x03 \x01(\x0e\x32$.skein.DeleteRangeRequest.ResultType\"+\n\nResultType\x12\x08\n\x04NONE\x10\x00\x12\t\n\x05ITEMS\x10\x01\x12\x08\n\x04KEYS\x10\x02\"\x80\x01\n\x13\x44\x65leteRangeResponse\x12\r\n\x05\x63ount\x18\x01 \x01(\x05\x12\x39\n\x0bresult_type\x18\x02 \x01(\x0e\x32$.skein.DeleteRangeRequest.ResultType\x12\x1f\n\x06result\x18\x03 \x03(\x0b\x32\x0f.skein.KeyValue\"\xae\x02\n\tCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x08operator\x18\x02 \x01(\x0e\x32\x19.skein.Condition.Operator\x12%\n\x05\x66ield\x18\x03 \x01(\x0e\x32\x16.skein.Condition.Field\x12\x0f\n\x05value\x18\x04 \x01(\x0cH\x00\x12)\n\x05owner\x18\x05 \x01(\x0b\x32\x18.skein.ContainerInstanceH\x00\"^\n\x08Operator\x12\t\n\x05\x45QUAL\x10\x00\x12\r\n\tNOT_EQUAL\x10\x01\x12\x08\n\x04LESS\x10\x02\x12\x0e\n\nLESS_EQUAL\x10\x03\x12\x0b\n\x07GREATER\x10\x04\x12\x11\n\rGREATER_EQUAL\x10\x05\"\x1d\n\x05\x46ield\x12\t\n\x05VALUE\x10\x00\x12\t\n\x05OWNER\x10\x01\x42\x05\n\x03rhs\"\x9f\x01\n\tOpRequest\x12+\n\tget_range\x18\x01 \x01(\x0b\x32\x16.skein.GetRangeRequestH\x00\x12\'\n\x07put_key\x18\x02 \x01(\x0b\x32\x14.skein.PutKeyRequestH\x00\x12\x31\n\x0c\x64\x65lete_range\x18\x03 \x01(\x0b\x32\x19.skein.DeleteRangeRequestH\x00\x42\t\n\x07request\"\xa4\x01\n\nOpResponse\x12,\n\tget_range\x18\x01 \x01(\x0b\x32\x17.skein.GetRangeResponseH\x00\x12(\n\x07put_key\x18\x02 \x01(\x0b\x32\x15.skein.PutKeyResponseH\x00\x12\x32\n\x0c\x64\x65lete_range\x18\x03 \x01(\x0b\x32\x1a.skein.DeleteRangeResponseH\x00\x42\n\n\x08response\"\x85\x01\n\x12TransactionRequest\x12#\n\tcondition\x18\x01 \x03(\x0b\x32\x10.skein.Condition\x12$\n\non_success\x18\x02 \x03(\x0b\x32\x10.skein.OpRequest\x12$\n\non_failure\x18\x03 \x03(\x0b\x32\x10.skein.OpRequest\"K\n\x13TransactionResponse\x12\x11\n\tsucceeded\x18\x01 \x01(\x08\x12!\n\x06result\x18\x02 \x03(\x0b\x32\x11.skein.OpResponse\"\x8a\x01\n\x12WatchCreateRequest\x12\r\n\x05start\x18\x01 \x01(\t\x12\x0b\n\x03\x65nd\x18\x02 \x01(\t\x12\x32\n\nevent_type\x18\x03 \x01(\x0e\x32\x1e.skein.WatchCreateRequest.Type\"$\n\x04Type\x12\x07\n\x03\x41LL\x10\x00\x12\x07\n\x03PUT\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\"&\n\x12WatchCancelRequest\x12\x10\n\x08watch_id\x18\x01 \x01(\x05\"s\n\x0cWatchRequest\x12+\n\x06\x63reate\x18\x01 \x01(\x0b\x32\x19.skein.WatchCreateRequestH\x00\x12+\n\x06\x63\x61ncel\x18\x02 \x01(\x0b\x32\x19.skein.WatchCancelRequestH\x00\x42\t\n\x07request\"\x9f\x01\n\rWatchResponse\x12\'\n\x04type\x18\x01 \x01(\x0e\x32\x19.skein.WatchResponse.Type\x12\x10\n\x08watch_id\x18\x02 \x01(\x05\x12\x1e\n\x05\x65vent\x18\x03 \x03(\x0b\x32\x0f.skein.KeyValue\"3\n\x04Type\x12\n\n\x06\x43REATE\x10\x00\x12\n\n\x06\x43\x41NCEL\x10\x01\x12\x07\n\x03PUT\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\";\n\x11\x43ontainerInstance\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\x10\n\x08instance\x18\x02 \x01(\x05\"M\n\x11\x43ontainersRequest\x12&\n\x06states\x18\x01 \x03(\x0e\x32\x16.skein.Container.State\x12\x10\n\x08services\x18\x02 \x03(\t\":\n\x12\x43ontainersResponse\x12$\n\ncontainers\x18\x01 \x03(\x0b\x32\x10.skein.Container\"B\n\x0cScaleRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12\r\n\x05\x64\x65lta\x18\x03 \x01(\x05\"\x89\x01\n\x13\x41\x64\x64\x43ontainerRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\x12\x30\n\x03\x65nv\x18\x02 \x03(\x0b\x32#.skein.AddContainerRequest.EnvEntry\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"&\n\x12SetProgressRequest\x12\x10\n\x08progress\x18\x01 \x01(\x02\"9\n\x05Proxy\x12\r\n\x05route\x18\x01 \x01(\t\x12\x11\n\tlink_name\x18\x02 \x01(\t\x12\x0e\n\x06target\x18\x03 \x01(\t\"#\n\x12RemoveProxyRequest\x12\r\n\x05route\x18\x01 \x01(\t\"\x0f\n\rUIInfoRequest\":\n\x0eUIInfoResponse\x12\x12\n\nui_address\x18\x01 \x03(\t\x12\x14\n\x0cproxy_prefix\x18\x02 \x01(\t\"\x13\n\x11GetProxiesRequest\"1\n\x12GetProxiesResponse\x12\x1b\n\x05proxy\x18\x01 \x03(\x0b\x32\x0c.skein.Proxy2\x93\x05\n\x06\x44river\x12\"\n\x04ping\x12\x0c.skein.Empty\x1a\x0c.skein.Empty\x12\x39\n\tgetStatus\x12\x12.skein.Application\x1a\x18.skein.ApplicationReport\x12J\n\x0fgetApplications\x12\x1a.skein.ApplicationsRequest\x1a\x1b.skein.ApplicationsResponse\x12\x35\n\x08getNodes\x12\x13.skein.NodesRequest\x1a\x14.skein.NodesResponse\x12-\n\x08getQueue\x12\x13.skein.QueueRequest\x1a\x0c.skein.Queue\x12<\n\x0egetChildQueues\x12\x13.skein.QueueRequest\x1a\x15.skein.QueuesResponse\x12\x33\n\x0cgetAllQueues\x12\x0c.skein.Empty\x1a\x15.skein.QueuesResponse\x12\x33\n\x0fmoveApplication\x12\x12.skein.MoveRequest\x1a\x0c.skein.Empty\x12\x34\n\x06submit\x12\x16.skein.ApplicationSpec\x1a\x12.skein.Application\x12<\n\x0cwaitForStart\x12\x12.skein.Application\x1a\x18.skein.ApplicationReport\x12(\n\x04kill\x12\x12.skein.KillRequest\x1a\x0c.skein.Empty\x12\x32\n\x07getLogs\x12\x12.skein.LogsRequest\x1a\x13.skein.LogsResponse2\xb9\x07\n\tAppMaster\x12\x30\n\x08shutdown\x12\x16.skein.ShutdownRequest\x1a\x0c.skein.Empty\x12;\n\x08GetRange\x12\x16.skein.GetRangeRequest\x1a\x17.skein.GetRangeResponse\x12\x35\n\x06PutKey\x12\x14.skein.PutKeyRequest\x1a\x15.skein.PutKeyResponse\x12\x44\n\x0b\x44\x65leteRange\x12\x19.skein.DeleteRangeRequest\x1a\x1a.skein.DeleteRangeResponse\x12\x44\n\x0bTransaction\x12\x19.skein.TransactionRequest\x1a\x1a.skein.TransactionResponse\x12\x36\n\x05Watch\x12\x13.skein.WatchRequest\x1a\x14.skein.WatchResponse(\x01\x30\x01\x12:\n\x12getApplicationSpec\x12\x0c.skein.Empty\x1a\x16.skein.ApplicationSpec\x12\x44\n\rgetContainers\x12\x18.skein.ContainersRequest\x1a\x19.skein.ContainersResponse\x12\x37\n\rkillContainer\x12\x18.skein.ContainerInstance\x1a\x0c.skein.Empty\x12\x37\n\x05scale\x12\x13.skein.ScaleRequest\x1a\x19.skein.ContainersResponse\x12<\n\x0c\x61\x64\x64\x43ontainer\x12\x1a.skein.AddContainerRequest\x1a\x10.skein.Container\x12\x36\n\x0bSetProgress\x12\x19.skein.SetProgressRequest\x1a\x0c.skein.Empty\x12&\n\x08\x41\x64\x64Proxy\x12\x0c.skein.Proxy\x1a\x0c.skein.Empty\x12\x36\n\x0bRemoveProxy\x12\x19.skein.RemoveProxyRequest\x1a\x0c.skein.Empty\x12\x35\n\x06UiInfo\x12\x14.skein.UIInfoRequest\x1a\x15.skein.UIInfoResponse\x12\x41\n\nGetProxies\x12\x18.skein.GetProxiesRequest\x1a\x19.skein.GetProxiesResponseB\x1b\n\x12\x63om.anaconda.skeinB\x03MsgH\x03\x62\x06proto3') -) - - - -_FINALSTATUS_TYPE = _descriptor.EnumDescriptor( - name='Type', - full_name='skein.FinalStatus.Type', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='UNDEFINED', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SUCCEEDED', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FAILED', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KILLED', index=3, number=3, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=46, - serialized_end=106, -) -_sym_db.RegisterEnumDescriptor(_FINALSTATUS_TYPE) - -_APPLICATIONSTATE_TYPE = _descriptor.EnumDescriptor( - name='Type', - full_name='skein.ApplicationState.Type', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='NEW', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NEW_SAVING', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SUBMITTED', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ACCEPTED', index=3, number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RUNNING', index=4, number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FINISHED', index=5, number=5, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FAILED', index=6, number=6, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KILLED', index=7, number=7, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=129, - serialized_end=240, -) -_sym_db.RegisterEnumDescriptor(_APPLICATIONSTATE_TYPE) - -_FILE_TYPE = _descriptor.EnumDescriptor( - name='Type', - full_name='skein.File.Type', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='FILE', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ARCHIVE', index=1, number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=527, - serialized_end=556, -) -_sym_db.RegisterEnumDescriptor(_FILE_TYPE) - -_FILE_VISIBILITY = _descriptor.EnumDescriptor( - name='Visibility', - full_name='skein.File.Visibility', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='PUBLIC', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PRIVATE', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='APPLICATION', index=2, number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=558, - serialized_end=612, -) -_sym_db.RegisterEnumDescriptor(_FILE_VISIBILITY) - -_LOG_LEVEL = _descriptor.EnumDescriptor( - name='Level', - full_name='skein.Log.Level', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='INFO', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ALL', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DEBUG', index=3, number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='WARN', index=4, number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ERROR', index=5, number=5, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FATAL', index=6, number=6, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='OFF', index=7, number=7, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=1153, - serialized_end=1242, -) -_sym_db.RegisterEnumDescriptor(_LOG_LEVEL) - -_CONTAINER_STATE = _descriptor.EnumDescriptor( - name='State', - full_name='skein.Container.State', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='WAITING', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='REQUESTED', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RUNNING', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SUCCEEDED', index=3, number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='FAILED', index=4, number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KILLED', index=5, number=5, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=2295, - serialized_end=2382, -) -_sym_db.RegisterEnumDescriptor(_CONTAINER_STATE) - -_NODESTATE_TYPE = _descriptor.EnumDescriptor( - name='Type', - full_name='skein.NodeState.Type', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='DECOMMISSIONED', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DECOMMISSIONING', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LOST', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NEW', index=3, number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='REBOOTED', index=4, number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RUNNING', index=5, number=5, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='SHUTDOWN', index=6, number=6, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='UNHEALTHY', index=7, number=7, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=2986, - serialized_end=3108, -) -_sym_db.RegisterEnumDescriptor(_NODESTATE_TYPE) - -_QUEUE_STATE = _descriptor.EnumDescriptor( - name='State', - full_name='skein.Queue.State', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='RUNNING', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='STOPPED', index=1, number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=3510, - serialized_end=3543, -) -_sym_db.RegisterEnumDescriptor(_QUEUE_STATE) - -_GETRANGEREQUEST_RESULTTYPE = _descriptor.EnumDescriptor( - name='ResultType', - full_name='skein.GetRangeRequest.ResultType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='ITEMS', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KEYS', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NONE', index=2, number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=4530, - serialized_end=4573, -) -_sym_db.RegisterEnumDescriptor(_GETRANGEREQUEST_RESULTTYPE) - -_DELETERANGEREQUEST_RESULTTYPE = _descriptor.EnumDescriptor( - name='ResultType', - full_name='skein.DeleteRangeRequest.ResultType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='NONE', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='ITEMS', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='KEYS', index=2, number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=5043, - serialized_end=5086, -) -_sym_db.RegisterEnumDescriptor(_DELETERANGEREQUEST_RESULTTYPE) - -_CONDITION_OPERATOR = _descriptor.EnumDescriptor( - name='Operator', - full_name='skein.Condition.Operator', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='EQUAL', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='NOT_EQUAL', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LESS', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='LESS_EQUAL', index=3, number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GREATER', index=4, number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='GREATER_EQUAL', index=5, number=5, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=5390, - serialized_end=5484, -) -_sym_db.RegisterEnumDescriptor(_CONDITION_OPERATOR) - -_CONDITION_FIELD = _descriptor.EnumDescriptor( - name='Field', - full_name='skein.Condition.Field', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='VALUE', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='OWNER', index=1, number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=5486, - serialized_end=5515, -) -_sym_db.RegisterEnumDescriptor(_CONDITION_FIELD) - -_WATCHCREATEREQUEST_TYPE = _descriptor.EnumDescriptor( - name='Type', - full_name='skein.WatchCreateRequest.Type', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='ALL', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PUT', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DELETE', index=2, number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6169, - serialized_end=6205, -) -_sym_db.RegisterEnumDescriptor(_WATCHCREATEREQUEST_TYPE) - -_WATCHRESPONSE_TYPE = _descriptor.EnumDescriptor( - name='Type', - full_name='skein.WatchResponse.Type', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='CREATE', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='CANCEL', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='PUT', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='DELETE', index=3, number=3, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6473, - serialized_end=6524, -) -_sym_db.RegisterEnumDescriptor(_WATCHRESPONSE_TYPE) - - -_EMPTY = _descriptor.Descriptor( - name='Empty', - full_name='skein.Empty', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=22, - serialized_end=29, -) - - -_FINALSTATUS = _descriptor.Descriptor( - name='FinalStatus', - full_name='skein.FinalStatus', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _FINALSTATUS_TYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=31, - serialized_end=106, -) - - -_APPLICATIONSTATE = _descriptor.Descriptor( - name='ApplicationState', - full_name='skein.ApplicationState', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _APPLICATIONSTATE_TYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=109, - serialized_end=240, -) - - -_RESOURCES = _descriptor.Descriptor( - name='Resources', - full_name='skein.Resources', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='memory', full_name='skein.Resources.memory', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='vcores', full_name='skein.Resources.vcores', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='gpus', full_name='skein.Resources.gpus', index=2, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='fpgas', full_name='skein.Resources.fpgas', index=3, - number=4, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=242, - serialized_end=314, -) - - -_URL = _descriptor.Descriptor( - name='Url', - full_name='skein.Url', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='scheme', full_name='skein.Url.scheme', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='host', full_name='skein.Url.host', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='port', full_name='skein.Url.port', index=2, - number=3, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='file', full_name='skein.Url.file', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=316, - serialized_end=379, -) - - -_FILE = _descriptor.Descriptor( - name='File', - full_name='skein.File', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='source', full_name='skein.File.source', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='type', full_name='skein.File.type', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='visibility', full_name='skein.File.visibility', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size', full_name='skein.File.size', index=3, - number=4, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='timestamp', full_name='skein.File.timestamp', index=4, - number=5, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _FILE_TYPE, - _FILE_VISIBILITY, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=382, - serialized_end=612, -) - - -_SERVICE_FILESENTRY = _descriptor.Descriptor( - name='FilesEntry', - full_name='skein.Service.FilesEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.Service.FilesEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.Service.FilesEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=_b('8\001'), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=915, - serialized_end=972, -) - -_SERVICE_ENVENTRY = _descriptor.Descriptor( - name='EnvEntry', - full_name='skein.Service.EnvEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.Service.EnvEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.Service.EnvEntry.value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=_b('8\001'), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=974, - serialized_end=1016, -) - -_SERVICE = _descriptor.Descriptor( - name='Service', - full_name='skein.Service', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='instances', full_name='skein.Service.instances', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='node_label', full_name='skein.Service.node_label', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='nodes', full_name='skein.Service.nodes', index=2, - number=3, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='racks', full_name='skein.Service.racks', index=3, - number=4, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='relax_locality', full_name='skein.Service.relax_locality', index=4, - number=5, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='max_restarts', full_name='skein.Service.max_restarts', index=5, - number=6, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='allow_failures', full_name='skein.Service.allow_failures', index=6, - number=7, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='resources', full_name='skein.Service.resources', index=7, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='files', full_name='skein.Service.files', index=8, - number=9, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='env', full_name='skein.Service.env', index=9, - number=10, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='script', full_name='skein.Service.script', index=10, - number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='depends', full_name='skein.Service.depends', index=11, - number=12, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_SERVICE_FILESENTRY, _SERVICE_ENVENTRY, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=615, - serialized_end=1016, -) - - -_ACLS = _descriptor.Descriptor( - name='Acls', - full_name='skein.Acls', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='enable', full_name='skein.Acls.enable', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='view_users', full_name='skein.Acls.view_users', index=1, - number=2, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='view_groups', full_name='skein.Acls.view_groups', index=2, - number=3, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='modify_users', full_name='skein.Acls.modify_users', index=3, - number=4, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='modify_groups', full_name='skein.Acls.modify_groups', index=4, - number=5, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ui_users', full_name='skein.Acls.ui_users', index=5, - number=6, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1018, - serialized_end=1144, -) - - -_LOG = _descriptor.Descriptor( - name='Log', - full_name='skein.Log', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _LOG_LEVEL, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1146, - serialized_end=1242, -) - - -_SECURITY = _descriptor.Descriptor( - name='Security', - full_name='skein.Security', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='cert_file', full_name='skein.Security.cert_file', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='cert_bytes', full_name='skein.Security.cert_bytes', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='key_file', full_name='skein.Security.key_file', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='key_bytes', full_name='skein.Security.key_bytes', index=3, - number=4, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='cert', full_name='skein.Security.cert', - index=0, containing_type=None, fields=[]), - _descriptor.OneofDescriptor( - name='key', full_name='skein.Security.key', - index=1, containing_type=None, fields=[]), - ], - serialized_start=1245, - serialized_end=1380, -) - - -_MASTER_FILESENTRY = _descriptor.Descriptor( - name='FilesEntry', - full_name='skein.Master.FilesEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.Master.FilesEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.Master.FilesEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=_b('8\001'), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=915, - serialized_end=972, -) - -_MASTER_ENVENTRY = _descriptor.Descriptor( - name='EnvEntry', - full_name='skein.Master.EnvEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.Master.EnvEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.Master.EnvEntry.value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=_b('8\001'), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=974, - serialized_end=1016, -) - -_MASTER = _descriptor.Descriptor( - name='Master', - full_name='skein.Master', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='log_config', full_name='skein.Master.log_config', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='log_level', full_name='skein.Master.log_level', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='security', full_name='skein.Master.security', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='resources', full_name='skein.Master.resources', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='files', full_name='skein.Master.files', index=4, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='env', full_name='skein.Master.env', index=5, - number=6, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='script', full_name='skein.Master.script', index=6, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_MASTER_FILESENTRY, _MASTER_ENVENTRY, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1383, - serialized_end=1730, -) - - -_APPLICATIONSPEC_SERVICESENTRY = _descriptor.Descriptor( - name='ServicesEntry', - full_name='skein.ApplicationSpec.ServicesEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.ApplicationSpec.ServicesEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.ApplicationSpec.ServicesEntry.value', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=_b('8\001'), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2015, - serialized_end=2078, -) - -_APPLICATIONSPEC = _descriptor.Descriptor( - name='ApplicationSpec', - full_name='skein.ApplicationSpec', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='skein.ApplicationSpec.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='queue', full_name='skein.ApplicationSpec.queue', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='user', full_name='skein.ApplicationSpec.user', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='node_label', full_name='skein.ApplicationSpec.node_label', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='max_attempts', full_name='skein.ApplicationSpec.max_attempts', index=4, - number=5, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tags', full_name='skein.ApplicationSpec.tags', index=5, - number=6, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='file_systems', full_name='skein.ApplicationSpec.file_systems', index=6, - number=7, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='delegation_systems', full_name='skein.ApplicationSpec.delegation_systems', index=7, - number=8, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='acls', full_name='skein.ApplicationSpec.acls', index=8, - number=9, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='master', full_name='skein.ApplicationSpec.master', index=9, - number=10, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='services', full_name='skein.ApplicationSpec.services', index=10, - number=11, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_APPLICATIONSPEC_SERVICESENTRY, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1733, - serialized_end=2078, -) - - -_CONTAINER = _descriptor.Descriptor( - name='Container', - full_name='skein.Container', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='service_name', full_name='skein.Container.service_name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='instance', full_name='skein.Container.instance', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='state', full_name='skein.Container.state', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='yarn_container_id', full_name='skein.Container.yarn_container_id', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='yarn_node_http_address', full_name='skein.Container.yarn_node_http_address', index=4, - number=5, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='start_time', full_name='skein.Container.start_time', index=5, - number=6, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='finish_time', full_name='skein.Container.finish_time', index=6, - number=7, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='exit_message', full_name='skein.Container.exit_message', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _CONTAINER_STATE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2081, - serialized_end=2382, -) - - -_RESOURCEUSAGEREPORT = _descriptor.Descriptor( - name='ResourceUsageReport', - full_name='skein.ResourceUsageReport', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='memory_seconds', full_name='skein.ResourceUsageReport.memory_seconds', index=0, - number=1, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='vcore_seconds', full_name='skein.ResourceUsageReport.vcore_seconds', index=1, - number=2, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='num_used_containers', full_name='skein.ResourceUsageReport.num_used_containers', index=2, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='needed_resources', full_name='skein.ResourceUsageReport.needed_resources', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='reserved_resources', full_name='skein.ResourceUsageReport.reserved_resources', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='used_resources', full_name='skein.ResourceUsageReport.used_resources', index=5, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2385, - serialized_end=2614, -) - - -_APPLICATIONREPORT = _descriptor.Descriptor( - name='ApplicationReport', - full_name='skein.ApplicationReport', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='skein.ApplicationReport.id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='name', full_name='skein.ApplicationReport.name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='user', full_name='skein.ApplicationReport.user', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='queue', full_name='skein.ApplicationReport.queue', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tags', full_name='skein.ApplicationReport.tags', index=4, - number=5, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='host', full_name='skein.ApplicationReport.host', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='port', full_name='skein.ApplicationReport.port', index=6, - number=7, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tracking_url', full_name='skein.ApplicationReport.tracking_url', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='state', full_name='skein.ApplicationReport.state', index=8, - number=9, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='final_status', full_name='skein.ApplicationReport.final_status', index=9, - number=10, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='progress', full_name='skein.ApplicationReport.progress', index=10, - number=11, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='usage', full_name='skein.ApplicationReport.usage', index=11, - number=12, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='diagnostics', full_name='skein.ApplicationReport.diagnostics', index=12, - number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='start_time', full_name='skein.ApplicationReport.start_time', index=13, - number=14, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='finish_time', full_name='skein.ApplicationReport.finish_time', index=14, - number=15, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2617, - serialized_end=2970, -) - - -_NODESTATE = _descriptor.Descriptor( - name='NodeState', - full_name='skein.NodeState', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _NODESTATE_TYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2973, - serialized_end=3108, -) - - -_NODEREPORT = _descriptor.Descriptor( - name='NodeReport', - full_name='skein.NodeReport', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='skein.NodeReport.id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='http_address', full_name='skein.NodeReport.http_address', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='rack_name', full_name='skein.NodeReport.rack_name', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='labels', full_name='skein.NodeReport.labels', index=3, - number=4, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='state', full_name='skein.NodeReport.state', index=4, - number=5, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='health_report', full_name='skein.NodeReport.health_report', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='total_resources', full_name='skein.NodeReport.total_resources', index=6, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='used_resources', full_name='skein.NodeReport.used_resources', index=7, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3111, - serialized_end=3338, -) - - -_QUEUE = _descriptor.Descriptor( - name='Queue', - full_name='skein.Queue', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='skein.Queue.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='state', full_name='skein.Queue.state', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='capacity', full_name='skein.Queue.capacity', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='max_capacity', full_name='skein.Queue.max_capacity', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='percent_used', full_name='skein.Queue.percent_used', index=4, - number=5, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='node_labels', full_name='skein.Queue.node_labels', index=5, - number=6, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='default_node_label', full_name='skein.Queue.default_node_label', index=6, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _QUEUE_STATE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3341, - serialized_end=3543, -) - - -_APPLICATION = _descriptor.Descriptor( - name='Application', - full_name='skein.Application', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='skein.Application.id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3545, - serialized_end=3570, -) - - -_APPLICATIONSREQUEST = _descriptor.Descriptor( - name='ApplicationsRequest', - full_name='skein.ApplicationsRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='states', full_name='skein.ApplicationsRequest.states', index=0, - number=1, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='name', full_name='skein.ApplicationsRequest.name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='user', full_name='skein.ApplicationsRequest.user', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='queue', full_name='skein.ApplicationsRequest.queue', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='started_begin', full_name='skein.ApplicationsRequest.started_begin', index=4, - number=5, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='started_end', full_name='skein.ApplicationsRequest.started_end', index=5, - number=6, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='finished_begin', full_name='skein.ApplicationsRequest.finished_begin', index=6, - number=7, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='finished_end', full_name='skein.ApplicationsRequest.finished_end', index=7, - number=8, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3573, - serialized_end=3773, -) - - -_APPLICATIONSRESPONSE = _descriptor.Descriptor( - name='ApplicationsResponse', - full_name='skein.ApplicationsResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='reports', full_name='skein.ApplicationsResponse.reports', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3775, - serialized_end=3840, -) - - -_NODESREQUEST = _descriptor.Descriptor( - name='NodesRequest', - full_name='skein.NodesRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='states', full_name='skein.NodesRequest.states', index=0, - number=1, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3842, - serialized_end=3895, -) - - -_NODESRESPONSE = _descriptor.Descriptor( - name='NodesResponse', - full_name='skein.NodesResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='reports', full_name='skein.NodesResponse.reports', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3897, - serialized_end=3948, -) - - -_QUEUEREQUEST = _descriptor.Descriptor( - name='QueueRequest', - full_name='skein.QueueRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='skein.QueueRequest.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3950, - serialized_end=3978, -) - - -_QUEUESRESPONSE = _descriptor.Descriptor( - name='QueuesResponse', - full_name='skein.QueuesResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='queues', full_name='skein.QueuesResponse.queues', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3980, - serialized_end=4026, -) - - -_LOGSREQUEST = _descriptor.Descriptor( - name='LogsRequest', - full_name='skein.LogsRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='skein.LogsRequest.id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='user', full_name='skein.LogsRequest.user', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4028, - serialized_end=4067, -) - - -_LOGSRESPONSE_LOGSENTRY = _descriptor.Descriptor( - name='LogsEntry', - full_name='skein.LogsResponse.LogsEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.LogsResponse.LogsEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.LogsResponse.LogsEntry.value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=_b('8\001'), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4130, - serialized_end=4173, -) - -_LOGSRESPONSE = _descriptor.Descriptor( - name='LogsResponse', - full_name='skein.LogsResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='logs', full_name='skein.LogsResponse.logs', index=0, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_LOGSRESPONSE_LOGSENTRY, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4069, - serialized_end=4173, -) - - -_MOVEREQUEST = _descriptor.Descriptor( - name='MoveRequest', - full_name='skein.MoveRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='skein.MoveRequest.id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='queue', full_name='skein.MoveRequest.queue', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4175, - serialized_end=4215, -) - - -_KILLREQUEST = _descriptor.Descriptor( - name='KillRequest', - full_name='skein.KillRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='skein.KillRequest.id', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='user', full_name='skein.KillRequest.user', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4217, - serialized_end=4256, -) - - -_SHUTDOWNREQUEST = _descriptor.Descriptor( - name='ShutdownRequest', - full_name='skein.ShutdownRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='final_status', full_name='skein.ShutdownRequest.final_status', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='diagnostics', full_name='skein.ShutdownRequest.diagnostics', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4258, - serialized_end=4343, -) - - -_KEYVALUE = _descriptor.Descriptor( - name='KeyValue', - full_name='skein.KeyValue', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.KeyValue.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.KeyValue.value', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='owner', full_name='skein.KeyValue.owner', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4345, - serialized_end=4424, -) - - -_GETRANGEREQUEST = _descriptor.Descriptor( - name='GetRangeRequest', - full_name='skein.GetRangeRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='start', full_name='skein.GetRangeRequest.start', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='end', full_name='skein.GetRangeRequest.end', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='result_type', full_name='skein.GetRangeRequest.result_type', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _GETRANGEREQUEST_RESULTTYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4427, - serialized_end=4573, -) - - -_GETRANGERESPONSE = _descriptor.Descriptor( - name='GetRangeResponse', - full_name='skein.GetRangeResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='count', full_name='skein.GetRangeResponse.count', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='result_type', full_name='skein.GetRangeResponse.result_type', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='result', full_name='skein.GetRangeResponse.result', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4575, - serialized_end=4697, -) - - -_PUTKEYREQUEST = _descriptor.Descriptor( - name='PutKeyRequest', - full_name='skein.PutKeyRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.PutKeyRequest.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.PutKeyRequest.value', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='owner', full_name='skein.PutKeyRequest.owner', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ignore_value', full_name='skein.PutKeyRequest.ignore_value', index=3, - number=4, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ignore_owner', full_name='skein.PutKeyRequest.ignore_owner', index=4, - number=5, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='return_previous', full_name='skein.PutKeyRequest.return_previous', index=5, - number=6, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4700, - serialized_end=4853, -) - - -_PUTKEYRESPONSE = _descriptor.Descriptor( - name='PutKeyResponse', - full_name='skein.PutKeyResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='return_previous', full_name='skein.PutKeyResponse.return_previous', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='previous', full_name='skein.PutKeyResponse.previous', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4855, - serialized_end=4931, -) - - -_DELETERANGEREQUEST = _descriptor.Descriptor( - name='DeleteRangeRequest', - full_name='skein.DeleteRangeRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='start', full_name='skein.DeleteRangeRequest.start', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='end', full_name='skein.DeleteRangeRequest.end', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='result_type', full_name='skein.DeleteRangeRequest.result_type', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _DELETERANGEREQUEST_RESULTTYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4934, - serialized_end=5086, -) - - -_DELETERANGERESPONSE = _descriptor.Descriptor( - name='DeleteRangeResponse', - full_name='skein.DeleteRangeResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='count', full_name='skein.DeleteRangeResponse.count', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='result_type', full_name='skein.DeleteRangeResponse.result_type', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='result', full_name='skein.DeleteRangeResponse.result', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5089, - serialized_end=5217, -) - - -_CONDITION = _descriptor.Descriptor( - name='Condition', - full_name='skein.Condition', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.Condition.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='operator', full_name='skein.Condition.operator', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='field', full_name='skein.Condition.field', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.Condition.value', index=3, - number=4, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=_b(""), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='owner', full_name='skein.Condition.owner', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _CONDITION_OPERATOR, - _CONDITION_FIELD, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='rhs', full_name='skein.Condition.rhs', - index=0, containing_type=None, fields=[]), - ], - serialized_start=5220, - serialized_end=5522, -) - - -_OPREQUEST = _descriptor.Descriptor( - name='OpRequest', - full_name='skein.OpRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='get_range', full_name='skein.OpRequest.get_range', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='put_key', full_name='skein.OpRequest.put_key', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='delete_range', full_name='skein.OpRequest.delete_range', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='request', full_name='skein.OpRequest.request', - index=0, containing_type=None, fields=[]), - ], - serialized_start=5525, - serialized_end=5684, -) - - -_OPRESPONSE = _descriptor.Descriptor( - name='OpResponse', - full_name='skein.OpResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='get_range', full_name='skein.OpResponse.get_range', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='put_key', full_name='skein.OpResponse.put_key', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='delete_range', full_name='skein.OpResponse.delete_range', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='response', full_name='skein.OpResponse.response', - index=0, containing_type=None, fields=[]), - ], - serialized_start=5687, - serialized_end=5851, -) - - -_TRANSACTIONREQUEST = _descriptor.Descriptor( - name='TransactionRequest', - full_name='skein.TransactionRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='condition', full_name='skein.TransactionRequest.condition', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='on_success', full_name='skein.TransactionRequest.on_success', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='on_failure', full_name='skein.TransactionRequest.on_failure', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5854, - serialized_end=5987, -) - - -_TRANSACTIONRESPONSE = _descriptor.Descriptor( - name='TransactionResponse', - full_name='skein.TransactionResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='succeeded', full_name='skein.TransactionResponse.succeeded', index=0, - number=1, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='result', full_name='skein.TransactionResponse.result', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=5989, - serialized_end=6064, -) - - -_WATCHCREATEREQUEST = _descriptor.Descriptor( - name='WatchCreateRequest', - full_name='skein.WatchCreateRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='start', full_name='skein.WatchCreateRequest.start', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='end', full_name='skein.WatchCreateRequest.end', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='event_type', full_name='skein.WatchCreateRequest.event_type', index=2, - number=3, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _WATCHCREATEREQUEST_TYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6067, - serialized_end=6205, -) - - -_WATCHCANCELREQUEST = _descriptor.Descriptor( - name='WatchCancelRequest', - full_name='skein.WatchCancelRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='watch_id', full_name='skein.WatchCancelRequest.watch_id', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6207, - serialized_end=6245, -) - - -_WATCHREQUEST = _descriptor.Descriptor( - name='WatchRequest', - full_name='skein.WatchRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='create', full_name='skein.WatchRequest.create', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='cancel', full_name='skein.WatchRequest.cancel', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='request', full_name='skein.WatchRequest.request', - index=0, containing_type=None, fields=[]), - ], - serialized_start=6247, - serialized_end=6362, -) - - -_WATCHRESPONSE = _descriptor.Descriptor( - name='WatchResponse', - full_name='skein.WatchResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='type', full_name='skein.WatchResponse.type', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='watch_id', full_name='skein.WatchResponse.watch_id', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='event', full_name='skein.WatchResponse.event', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _WATCHRESPONSE_TYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6365, - serialized_end=6524, -) - - -_CONTAINERINSTANCE = _descriptor.Descriptor( - name='ContainerInstance', - full_name='skein.ContainerInstance', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='service_name', full_name='skein.ContainerInstance.service_name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='instance', full_name='skein.ContainerInstance.instance', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6526, - serialized_end=6585, -) - - -_CONTAINERSREQUEST = _descriptor.Descriptor( - name='ContainersRequest', - full_name='skein.ContainersRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='states', full_name='skein.ContainersRequest.states', index=0, - number=1, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='services', full_name='skein.ContainersRequest.services', index=1, - number=2, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6587, - serialized_end=6664, -) - - -_CONTAINERSRESPONSE = _descriptor.Descriptor( - name='ContainersResponse', - full_name='skein.ContainersResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='containers', full_name='skein.ContainersResponse.containers', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6666, - serialized_end=6724, -) - - -_SCALEREQUEST = _descriptor.Descriptor( - name='ScaleRequest', - full_name='skein.ScaleRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='service_name', full_name='skein.ScaleRequest.service_name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='count', full_name='skein.ScaleRequest.count', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='delta', full_name='skein.ScaleRequest.delta', index=2, - number=3, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6726, - serialized_end=6792, -) - - -_ADDCONTAINERREQUEST_ENVENTRY = _descriptor.Descriptor( - name='EnvEntry', - full_name='skein.AddContainerRequest.EnvEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='skein.AddContainerRequest.EnvEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='skein.AddContainerRequest.EnvEntry.value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=_b('8\001'), - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=974, - serialized_end=1016, -) - -_ADDCONTAINERREQUEST = _descriptor.Descriptor( - name='AddContainerRequest', - full_name='skein.AddContainerRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='service_name', full_name='skein.AddContainerRequest.service_name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='env', full_name='skein.AddContainerRequest.env', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_ADDCONTAINERREQUEST_ENVENTRY, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6795, - serialized_end=6932, -) - - -_SETPROGRESSREQUEST = _descriptor.Descriptor( - name='SetProgressRequest', - full_name='skein.SetProgressRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='progress', full_name='skein.SetProgressRequest.progress', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6934, - serialized_end=6972, -) - - -_PROXY = _descriptor.Descriptor( - name='Proxy', - full_name='skein.Proxy', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='route', full_name='skein.Proxy.route', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='link_name', full_name='skein.Proxy.link_name', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='target', full_name='skein.Proxy.target', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=6974, - serialized_end=7031, -) - - -_REMOVEPROXYREQUEST = _descriptor.Descriptor( - name='RemoveProxyRequest', - full_name='skein.RemoveProxyRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='route', full_name='skein.RemoveProxyRequest.route', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=7033, - serialized_end=7068, -) - - -_UIINFOREQUEST = _descriptor.Descriptor( - name='UIInfoRequest', - full_name='skein.UIInfoRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=7070, - serialized_end=7085, -) - - -_UIINFORESPONSE = _descriptor.Descriptor( - name='UIInfoResponse', - full_name='skein.UIInfoResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='ui_address', full_name='skein.UIInfoResponse.ui_address', index=0, - number=1, type=9, cpp_type=9, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='proxy_prefix', full_name='skein.UIInfoResponse.proxy_prefix', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=7087, - serialized_end=7145, -) - - -_GETPROXIESREQUEST = _descriptor.Descriptor( - name='GetProxiesRequest', - full_name='skein.GetProxiesRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=7147, - serialized_end=7166, -) - - -_GETPROXIESRESPONSE = _descriptor.Descriptor( - name='GetProxiesResponse', - full_name='skein.GetProxiesResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='proxy', full_name='skein.GetProxiesResponse.proxy', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=7168, - serialized_end=7217, -) - -_FINALSTATUS_TYPE.containing_type = _FINALSTATUS -_APPLICATIONSTATE_TYPE.containing_type = _APPLICATIONSTATE -_FILE.fields_by_name['source'].message_type = _URL -_FILE.fields_by_name['type'].enum_type = _FILE_TYPE -_FILE.fields_by_name['visibility'].enum_type = _FILE_VISIBILITY -_FILE_TYPE.containing_type = _FILE -_FILE_VISIBILITY.containing_type = _FILE -_SERVICE_FILESENTRY.fields_by_name['value'].message_type = _FILE -_SERVICE_FILESENTRY.containing_type = _SERVICE -_SERVICE_ENVENTRY.containing_type = _SERVICE -_SERVICE.fields_by_name['resources'].message_type = _RESOURCES -_SERVICE.fields_by_name['files'].message_type = _SERVICE_FILESENTRY -_SERVICE.fields_by_name['env'].message_type = _SERVICE_ENVENTRY -_LOG_LEVEL.containing_type = _LOG -_SECURITY.fields_by_name['cert_file'].message_type = _FILE -_SECURITY.fields_by_name['key_file'].message_type = _FILE -_SECURITY.oneofs_by_name['cert'].fields.append( - _SECURITY.fields_by_name['cert_file']) -_SECURITY.fields_by_name['cert_file'].containing_oneof = _SECURITY.oneofs_by_name['cert'] -_SECURITY.oneofs_by_name['cert'].fields.append( - _SECURITY.fields_by_name['cert_bytes']) -_SECURITY.fields_by_name['cert_bytes'].containing_oneof = _SECURITY.oneofs_by_name['cert'] -_SECURITY.oneofs_by_name['key'].fields.append( - _SECURITY.fields_by_name['key_file']) -_SECURITY.fields_by_name['key_file'].containing_oneof = _SECURITY.oneofs_by_name['key'] -_SECURITY.oneofs_by_name['key'].fields.append( - _SECURITY.fields_by_name['key_bytes']) -_SECURITY.fields_by_name['key_bytes'].containing_oneof = _SECURITY.oneofs_by_name['key'] -_MASTER_FILESENTRY.fields_by_name['value'].message_type = _FILE -_MASTER_FILESENTRY.containing_type = _MASTER -_MASTER_ENVENTRY.containing_type = _MASTER -_MASTER.fields_by_name['log_config'].message_type = _FILE -_MASTER.fields_by_name['log_level'].enum_type = _LOG_LEVEL -_MASTER.fields_by_name['security'].message_type = _SECURITY -_MASTER.fields_by_name['resources'].message_type = _RESOURCES -_MASTER.fields_by_name['files'].message_type = _MASTER_FILESENTRY -_MASTER.fields_by_name['env'].message_type = _MASTER_ENVENTRY -_APPLICATIONSPEC_SERVICESENTRY.fields_by_name['value'].message_type = _SERVICE -_APPLICATIONSPEC_SERVICESENTRY.containing_type = _APPLICATIONSPEC -_APPLICATIONSPEC.fields_by_name['acls'].message_type = _ACLS -_APPLICATIONSPEC.fields_by_name['master'].message_type = _MASTER -_APPLICATIONSPEC.fields_by_name['services'].message_type = _APPLICATIONSPEC_SERVICESENTRY -_CONTAINER.fields_by_name['state'].enum_type = _CONTAINER_STATE -_CONTAINER_STATE.containing_type = _CONTAINER -_RESOURCEUSAGEREPORT.fields_by_name['needed_resources'].message_type = _RESOURCES -_RESOURCEUSAGEREPORT.fields_by_name['reserved_resources'].message_type = _RESOURCES -_RESOURCEUSAGEREPORT.fields_by_name['used_resources'].message_type = _RESOURCES -_APPLICATIONREPORT.fields_by_name['state'].enum_type = _APPLICATIONSTATE_TYPE -_APPLICATIONREPORT.fields_by_name['final_status'].enum_type = _FINALSTATUS_TYPE -_APPLICATIONREPORT.fields_by_name['usage'].message_type = _RESOURCEUSAGEREPORT -_NODESTATE_TYPE.containing_type = _NODESTATE -_NODEREPORT.fields_by_name['state'].enum_type = _NODESTATE_TYPE -_NODEREPORT.fields_by_name['total_resources'].message_type = _RESOURCES -_NODEREPORT.fields_by_name['used_resources'].message_type = _RESOURCES -_QUEUE.fields_by_name['state'].enum_type = _QUEUE_STATE -_QUEUE_STATE.containing_type = _QUEUE -_APPLICATIONSREQUEST.fields_by_name['states'].enum_type = _APPLICATIONSTATE_TYPE -_APPLICATIONSRESPONSE.fields_by_name['reports'].message_type = _APPLICATIONREPORT -_NODESREQUEST.fields_by_name['states'].enum_type = _NODESTATE_TYPE -_NODESRESPONSE.fields_by_name['reports'].message_type = _NODEREPORT -_QUEUESRESPONSE.fields_by_name['queues'].message_type = _QUEUE -_LOGSRESPONSE_LOGSENTRY.containing_type = _LOGSRESPONSE -_LOGSRESPONSE.fields_by_name['logs'].message_type = _LOGSRESPONSE_LOGSENTRY -_SHUTDOWNREQUEST.fields_by_name['final_status'].enum_type = _FINALSTATUS_TYPE -_KEYVALUE.fields_by_name['owner'].message_type = _CONTAINERINSTANCE -_GETRANGEREQUEST.fields_by_name['result_type'].enum_type = _GETRANGEREQUEST_RESULTTYPE -_GETRANGEREQUEST_RESULTTYPE.containing_type = _GETRANGEREQUEST -_GETRANGERESPONSE.fields_by_name['result_type'].enum_type = _GETRANGEREQUEST_RESULTTYPE -_GETRANGERESPONSE.fields_by_name['result'].message_type = _KEYVALUE -_PUTKEYREQUEST.fields_by_name['owner'].message_type = _CONTAINERINSTANCE -_PUTKEYRESPONSE.fields_by_name['previous'].message_type = _KEYVALUE -_DELETERANGEREQUEST.fields_by_name['result_type'].enum_type = _DELETERANGEREQUEST_RESULTTYPE -_DELETERANGEREQUEST_RESULTTYPE.containing_type = _DELETERANGEREQUEST -_DELETERANGERESPONSE.fields_by_name['result_type'].enum_type = _DELETERANGEREQUEST_RESULTTYPE -_DELETERANGERESPONSE.fields_by_name['result'].message_type = _KEYVALUE -_CONDITION.fields_by_name['operator'].enum_type = _CONDITION_OPERATOR -_CONDITION.fields_by_name['field'].enum_type = _CONDITION_FIELD -_CONDITION.fields_by_name['owner'].message_type = _CONTAINERINSTANCE -_CONDITION_OPERATOR.containing_type = _CONDITION -_CONDITION_FIELD.containing_type = _CONDITION -_CONDITION.oneofs_by_name['rhs'].fields.append( - _CONDITION.fields_by_name['value']) -_CONDITION.fields_by_name['value'].containing_oneof = _CONDITION.oneofs_by_name['rhs'] -_CONDITION.oneofs_by_name['rhs'].fields.append( - _CONDITION.fields_by_name['owner']) -_CONDITION.fields_by_name['owner'].containing_oneof = _CONDITION.oneofs_by_name['rhs'] -_OPREQUEST.fields_by_name['get_range'].message_type = _GETRANGEREQUEST -_OPREQUEST.fields_by_name['put_key'].message_type = _PUTKEYREQUEST -_OPREQUEST.fields_by_name['delete_range'].message_type = _DELETERANGEREQUEST -_OPREQUEST.oneofs_by_name['request'].fields.append( - _OPREQUEST.fields_by_name['get_range']) -_OPREQUEST.fields_by_name['get_range'].containing_oneof = _OPREQUEST.oneofs_by_name['request'] -_OPREQUEST.oneofs_by_name['request'].fields.append( - _OPREQUEST.fields_by_name['put_key']) -_OPREQUEST.fields_by_name['put_key'].containing_oneof = _OPREQUEST.oneofs_by_name['request'] -_OPREQUEST.oneofs_by_name['request'].fields.append( - _OPREQUEST.fields_by_name['delete_range']) -_OPREQUEST.fields_by_name['delete_range'].containing_oneof = _OPREQUEST.oneofs_by_name['request'] -_OPRESPONSE.fields_by_name['get_range'].message_type = _GETRANGERESPONSE -_OPRESPONSE.fields_by_name['put_key'].message_type = _PUTKEYRESPONSE -_OPRESPONSE.fields_by_name['delete_range'].message_type = _DELETERANGERESPONSE -_OPRESPONSE.oneofs_by_name['response'].fields.append( - _OPRESPONSE.fields_by_name['get_range']) -_OPRESPONSE.fields_by_name['get_range'].containing_oneof = _OPRESPONSE.oneofs_by_name['response'] -_OPRESPONSE.oneofs_by_name['response'].fields.append( - _OPRESPONSE.fields_by_name['put_key']) -_OPRESPONSE.fields_by_name['put_key'].containing_oneof = _OPRESPONSE.oneofs_by_name['response'] -_OPRESPONSE.oneofs_by_name['response'].fields.append( - _OPRESPONSE.fields_by_name['delete_range']) -_OPRESPONSE.fields_by_name['delete_range'].containing_oneof = _OPRESPONSE.oneofs_by_name['response'] -_TRANSACTIONREQUEST.fields_by_name['condition'].message_type = _CONDITION -_TRANSACTIONREQUEST.fields_by_name['on_success'].message_type = _OPREQUEST -_TRANSACTIONREQUEST.fields_by_name['on_failure'].message_type = _OPREQUEST -_TRANSACTIONRESPONSE.fields_by_name['result'].message_type = _OPRESPONSE -_WATCHCREATEREQUEST.fields_by_name['event_type'].enum_type = _WATCHCREATEREQUEST_TYPE -_WATCHCREATEREQUEST_TYPE.containing_type = _WATCHCREATEREQUEST -_WATCHREQUEST.fields_by_name['create'].message_type = _WATCHCREATEREQUEST -_WATCHREQUEST.fields_by_name['cancel'].message_type = _WATCHCANCELREQUEST -_WATCHREQUEST.oneofs_by_name['request'].fields.append( - _WATCHREQUEST.fields_by_name['create']) -_WATCHREQUEST.fields_by_name['create'].containing_oneof = _WATCHREQUEST.oneofs_by_name['request'] -_WATCHREQUEST.oneofs_by_name['request'].fields.append( - _WATCHREQUEST.fields_by_name['cancel']) -_WATCHREQUEST.fields_by_name['cancel'].containing_oneof = _WATCHREQUEST.oneofs_by_name['request'] -_WATCHRESPONSE.fields_by_name['type'].enum_type = _WATCHRESPONSE_TYPE -_WATCHRESPONSE.fields_by_name['event'].message_type = _KEYVALUE -_WATCHRESPONSE_TYPE.containing_type = _WATCHRESPONSE -_CONTAINERSREQUEST.fields_by_name['states'].enum_type = _CONTAINER_STATE -_CONTAINERSRESPONSE.fields_by_name['containers'].message_type = _CONTAINER -_ADDCONTAINERREQUEST_ENVENTRY.containing_type = _ADDCONTAINERREQUEST -_ADDCONTAINERREQUEST.fields_by_name['env'].message_type = _ADDCONTAINERREQUEST_ENVENTRY -_GETPROXIESRESPONSE.fields_by_name['proxy'].message_type = _PROXY -DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY -DESCRIPTOR.message_types_by_name['FinalStatus'] = _FINALSTATUS -DESCRIPTOR.message_types_by_name['ApplicationState'] = _APPLICATIONSTATE -DESCRIPTOR.message_types_by_name['Resources'] = _RESOURCES -DESCRIPTOR.message_types_by_name['Url'] = _URL -DESCRIPTOR.message_types_by_name['File'] = _FILE -DESCRIPTOR.message_types_by_name['Service'] = _SERVICE -DESCRIPTOR.message_types_by_name['Acls'] = _ACLS -DESCRIPTOR.message_types_by_name['Log'] = _LOG -DESCRIPTOR.message_types_by_name['Security'] = _SECURITY -DESCRIPTOR.message_types_by_name['Master'] = _MASTER -DESCRIPTOR.message_types_by_name['ApplicationSpec'] = _APPLICATIONSPEC -DESCRIPTOR.message_types_by_name['Container'] = _CONTAINER -DESCRIPTOR.message_types_by_name['ResourceUsageReport'] = _RESOURCEUSAGEREPORT -DESCRIPTOR.message_types_by_name['ApplicationReport'] = _APPLICATIONREPORT -DESCRIPTOR.message_types_by_name['NodeState'] = _NODESTATE -DESCRIPTOR.message_types_by_name['NodeReport'] = _NODEREPORT -DESCRIPTOR.message_types_by_name['Queue'] = _QUEUE -DESCRIPTOR.message_types_by_name['Application'] = _APPLICATION -DESCRIPTOR.message_types_by_name['ApplicationsRequest'] = _APPLICATIONSREQUEST -DESCRIPTOR.message_types_by_name['ApplicationsResponse'] = _APPLICATIONSRESPONSE -DESCRIPTOR.message_types_by_name['NodesRequest'] = _NODESREQUEST -DESCRIPTOR.message_types_by_name['NodesResponse'] = _NODESRESPONSE -DESCRIPTOR.message_types_by_name['QueueRequest'] = _QUEUEREQUEST -DESCRIPTOR.message_types_by_name['QueuesResponse'] = _QUEUESRESPONSE -DESCRIPTOR.message_types_by_name['LogsRequest'] = _LOGSREQUEST -DESCRIPTOR.message_types_by_name['LogsResponse'] = _LOGSRESPONSE -DESCRIPTOR.message_types_by_name['MoveRequest'] = _MOVEREQUEST -DESCRIPTOR.message_types_by_name['KillRequest'] = _KILLREQUEST -DESCRIPTOR.message_types_by_name['ShutdownRequest'] = _SHUTDOWNREQUEST -DESCRIPTOR.message_types_by_name['KeyValue'] = _KEYVALUE -DESCRIPTOR.message_types_by_name['GetRangeRequest'] = _GETRANGEREQUEST -DESCRIPTOR.message_types_by_name['GetRangeResponse'] = _GETRANGERESPONSE -DESCRIPTOR.message_types_by_name['PutKeyRequest'] = _PUTKEYREQUEST -DESCRIPTOR.message_types_by_name['PutKeyResponse'] = _PUTKEYRESPONSE -DESCRIPTOR.message_types_by_name['DeleteRangeRequest'] = _DELETERANGEREQUEST -DESCRIPTOR.message_types_by_name['DeleteRangeResponse'] = _DELETERANGERESPONSE -DESCRIPTOR.message_types_by_name['Condition'] = _CONDITION -DESCRIPTOR.message_types_by_name['OpRequest'] = _OPREQUEST -DESCRIPTOR.message_types_by_name['OpResponse'] = _OPRESPONSE -DESCRIPTOR.message_types_by_name['TransactionRequest'] = _TRANSACTIONREQUEST -DESCRIPTOR.message_types_by_name['TransactionResponse'] = _TRANSACTIONRESPONSE -DESCRIPTOR.message_types_by_name['WatchCreateRequest'] = _WATCHCREATEREQUEST -DESCRIPTOR.message_types_by_name['WatchCancelRequest'] = _WATCHCANCELREQUEST -DESCRIPTOR.message_types_by_name['WatchRequest'] = _WATCHREQUEST -DESCRIPTOR.message_types_by_name['WatchResponse'] = _WATCHRESPONSE -DESCRIPTOR.message_types_by_name['ContainerInstance'] = _CONTAINERINSTANCE -DESCRIPTOR.message_types_by_name['ContainersRequest'] = _CONTAINERSREQUEST -DESCRIPTOR.message_types_by_name['ContainersResponse'] = _CONTAINERSRESPONSE -DESCRIPTOR.message_types_by_name['ScaleRequest'] = _SCALEREQUEST -DESCRIPTOR.message_types_by_name['AddContainerRequest'] = _ADDCONTAINERREQUEST -DESCRIPTOR.message_types_by_name['SetProgressRequest'] = _SETPROGRESSREQUEST -DESCRIPTOR.message_types_by_name['Proxy'] = _PROXY -DESCRIPTOR.message_types_by_name['RemoveProxyRequest'] = _REMOVEPROXYREQUEST -DESCRIPTOR.message_types_by_name['UIInfoRequest'] = _UIINFOREQUEST -DESCRIPTOR.message_types_by_name['UIInfoResponse'] = _UIINFORESPONSE -DESCRIPTOR.message_types_by_name['GetProxiesRequest'] = _GETPROXIESREQUEST -DESCRIPTOR.message_types_by_name['GetProxiesResponse'] = _GETPROXIESRESPONSE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), { - 'DESCRIPTOR' : _EMPTY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Empty) - }) -_sym_db.RegisterMessage(Empty) - -FinalStatus = _reflection.GeneratedProtocolMessageType('FinalStatus', (_message.Message,), { - 'DESCRIPTOR' : _FINALSTATUS, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.FinalStatus) - }) -_sym_db.RegisterMessage(FinalStatus) - -ApplicationState = _reflection.GeneratedProtocolMessageType('ApplicationState', (_message.Message,), { - 'DESCRIPTOR' : _APPLICATIONSTATE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ApplicationState) - }) -_sym_db.RegisterMessage(ApplicationState) - -Resources = _reflection.GeneratedProtocolMessageType('Resources', (_message.Message,), { - 'DESCRIPTOR' : _RESOURCES, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Resources) - }) -_sym_db.RegisterMessage(Resources) - -Url = _reflection.GeneratedProtocolMessageType('Url', (_message.Message,), { - 'DESCRIPTOR' : _URL, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Url) - }) -_sym_db.RegisterMessage(Url) - -File = _reflection.GeneratedProtocolMessageType('File', (_message.Message,), { - 'DESCRIPTOR' : _FILE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.File) - }) -_sym_db.RegisterMessage(File) - -Service = _reflection.GeneratedProtocolMessageType('Service', (_message.Message,), { - - 'FilesEntry' : _reflection.GeneratedProtocolMessageType('FilesEntry', (_message.Message,), { - 'DESCRIPTOR' : _SERVICE_FILESENTRY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Service.FilesEntry) - }) - , - - 'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), { - 'DESCRIPTOR' : _SERVICE_ENVENTRY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Service.EnvEntry) - }) - , - 'DESCRIPTOR' : _SERVICE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Service) - }) -_sym_db.RegisterMessage(Service) -_sym_db.RegisterMessage(Service.FilesEntry) -_sym_db.RegisterMessage(Service.EnvEntry) - -Acls = _reflection.GeneratedProtocolMessageType('Acls', (_message.Message,), { - 'DESCRIPTOR' : _ACLS, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Acls) - }) -_sym_db.RegisterMessage(Acls) - -Log = _reflection.GeneratedProtocolMessageType('Log', (_message.Message,), { - 'DESCRIPTOR' : _LOG, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Log) - }) -_sym_db.RegisterMessage(Log) - -Security = _reflection.GeneratedProtocolMessageType('Security', (_message.Message,), { - 'DESCRIPTOR' : _SECURITY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Security) - }) -_sym_db.RegisterMessage(Security) - -Master = _reflection.GeneratedProtocolMessageType('Master', (_message.Message,), { - - 'FilesEntry' : _reflection.GeneratedProtocolMessageType('FilesEntry', (_message.Message,), { - 'DESCRIPTOR' : _MASTER_FILESENTRY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Master.FilesEntry) - }) - , - - 'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), { - 'DESCRIPTOR' : _MASTER_ENVENTRY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Master.EnvEntry) - }) - , - 'DESCRIPTOR' : _MASTER, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Master) - }) -_sym_db.RegisterMessage(Master) -_sym_db.RegisterMessage(Master.FilesEntry) -_sym_db.RegisterMessage(Master.EnvEntry) - -ApplicationSpec = _reflection.GeneratedProtocolMessageType('ApplicationSpec', (_message.Message,), { - - 'ServicesEntry' : _reflection.GeneratedProtocolMessageType('ServicesEntry', (_message.Message,), { - 'DESCRIPTOR' : _APPLICATIONSPEC_SERVICESENTRY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ApplicationSpec.ServicesEntry) - }) - , - 'DESCRIPTOR' : _APPLICATIONSPEC, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ApplicationSpec) - }) -_sym_db.RegisterMessage(ApplicationSpec) -_sym_db.RegisterMessage(ApplicationSpec.ServicesEntry) - -Container = _reflection.GeneratedProtocolMessageType('Container', (_message.Message,), { - 'DESCRIPTOR' : _CONTAINER, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Container) - }) -_sym_db.RegisterMessage(Container) - -ResourceUsageReport = _reflection.GeneratedProtocolMessageType('ResourceUsageReport', (_message.Message,), { - 'DESCRIPTOR' : _RESOURCEUSAGEREPORT, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ResourceUsageReport) - }) -_sym_db.RegisterMessage(ResourceUsageReport) - -ApplicationReport = _reflection.GeneratedProtocolMessageType('ApplicationReport', (_message.Message,), { - 'DESCRIPTOR' : _APPLICATIONREPORT, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ApplicationReport) - }) -_sym_db.RegisterMessage(ApplicationReport) - -NodeState = _reflection.GeneratedProtocolMessageType('NodeState', (_message.Message,), { - 'DESCRIPTOR' : _NODESTATE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.NodeState) - }) -_sym_db.RegisterMessage(NodeState) - -NodeReport = _reflection.GeneratedProtocolMessageType('NodeReport', (_message.Message,), { - 'DESCRIPTOR' : _NODEREPORT, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.NodeReport) - }) -_sym_db.RegisterMessage(NodeReport) - -Queue = _reflection.GeneratedProtocolMessageType('Queue', (_message.Message,), { - 'DESCRIPTOR' : _QUEUE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Queue) - }) -_sym_db.RegisterMessage(Queue) - -Application = _reflection.GeneratedProtocolMessageType('Application', (_message.Message,), { - 'DESCRIPTOR' : _APPLICATION, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Application) - }) -_sym_db.RegisterMessage(Application) - -ApplicationsRequest = _reflection.GeneratedProtocolMessageType('ApplicationsRequest', (_message.Message,), { - 'DESCRIPTOR' : _APPLICATIONSREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ApplicationsRequest) - }) -_sym_db.RegisterMessage(ApplicationsRequest) - -ApplicationsResponse = _reflection.GeneratedProtocolMessageType('ApplicationsResponse', (_message.Message,), { - 'DESCRIPTOR' : _APPLICATIONSRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ApplicationsResponse) - }) -_sym_db.RegisterMessage(ApplicationsResponse) - -NodesRequest = _reflection.GeneratedProtocolMessageType('NodesRequest', (_message.Message,), { - 'DESCRIPTOR' : _NODESREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.NodesRequest) - }) -_sym_db.RegisterMessage(NodesRequest) - -NodesResponse = _reflection.GeneratedProtocolMessageType('NodesResponse', (_message.Message,), { - 'DESCRIPTOR' : _NODESRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.NodesResponse) - }) -_sym_db.RegisterMessage(NodesResponse) - -QueueRequest = _reflection.GeneratedProtocolMessageType('QueueRequest', (_message.Message,), { - 'DESCRIPTOR' : _QUEUEREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.QueueRequest) - }) -_sym_db.RegisterMessage(QueueRequest) - -QueuesResponse = _reflection.GeneratedProtocolMessageType('QueuesResponse', (_message.Message,), { - 'DESCRIPTOR' : _QUEUESRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.QueuesResponse) - }) -_sym_db.RegisterMessage(QueuesResponse) - -LogsRequest = _reflection.GeneratedProtocolMessageType('LogsRequest', (_message.Message,), { - 'DESCRIPTOR' : _LOGSREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.LogsRequest) - }) -_sym_db.RegisterMessage(LogsRequest) - -LogsResponse = _reflection.GeneratedProtocolMessageType('LogsResponse', (_message.Message,), { - - 'LogsEntry' : _reflection.GeneratedProtocolMessageType('LogsEntry', (_message.Message,), { - 'DESCRIPTOR' : _LOGSRESPONSE_LOGSENTRY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.LogsResponse.LogsEntry) - }) - , - 'DESCRIPTOR' : _LOGSRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.LogsResponse) - }) -_sym_db.RegisterMessage(LogsResponse) -_sym_db.RegisterMessage(LogsResponse.LogsEntry) - -MoveRequest = _reflection.GeneratedProtocolMessageType('MoveRequest', (_message.Message,), { - 'DESCRIPTOR' : _MOVEREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.MoveRequest) - }) -_sym_db.RegisterMessage(MoveRequest) - -KillRequest = _reflection.GeneratedProtocolMessageType('KillRequest', (_message.Message,), { - 'DESCRIPTOR' : _KILLREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.KillRequest) - }) -_sym_db.RegisterMessage(KillRequest) - -ShutdownRequest = _reflection.GeneratedProtocolMessageType('ShutdownRequest', (_message.Message,), { - 'DESCRIPTOR' : _SHUTDOWNREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ShutdownRequest) - }) -_sym_db.RegisterMessage(ShutdownRequest) - -KeyValue = _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), { - 'DESCRIPTOR' : _KEYVALUE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.KeyValue) - }) -_sym_db.RegisterMessage(KeyValue) - -GetRangeRequest = _reflection.GeneratedProtocolMessageType('GetRangeRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETRANGEREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.GetRangeRequest) - }) -_sym_db.RegisterMessage(GetRangeRequest) - -GetRangeResponse = _reflection.GeneratedProtocolMessageType('GetRangeResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETRANGERESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.GetRangeResponse) - }) -_sym_db.RegisterMessage(GetRangeResponse) - -PutKeyRequest = _reflection.GeneratedProtocolMessageType('PutKeyRequest', (_message.Message,), { - 'DESCRIPTOR' : _PUTKEYREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.PutKeyRequest) - }) -_sym_db.RegisterMessage(PutKeyRequest) - -PutKeyResponse = _reflection.GeneratedProtocolMessageType('PutKeyResponse', (_message.Message,), { - 'DESCRIPTOR' : _PUTKEYRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.PutKeyResponse) - }) -_sym_db.RegisterMessage(PutKeyResponse) - -DeleteRangeRequest = _reflection.GeneratedProtocolMessageType('DeleteRangeRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETERANGEREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.DeleteRangeRequest) - }) -_sym_db.RegisterMessage(DeleteRangeRequest) - -DeleteRangeResponse = _reflection.GeneratedProtocolMessageType('DeleteRangeResponse', (_message.Message,), { - 'DESCRIPTOR' : _DELETERANGERESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.DeleteRangeResponse) - }) -_sym_db.RegisterMessage(DeleteRangeResponse) - -Condition = _reflection.GeneratedProtocolMessageType('Condition', (_message.Message,), { - 'DESCRIPTOR' : _CONDITION, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Condition) - }) -_sym_db.RegisterMessage(Condition) - -OpRequest = _reflection.GeneratedProtocolMessageType('OpRequest', (_message.Message,), { - 'DESCRIPTOR' : _OPREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.OpRequest) - }) -_sym_db.RegisterMessage(OpRequest) - -OpResponse = _reflection.GeneratedProtocolMessageType('OpResponse', (_message.Message,), { - 'DESCRIPTOR' : _OPRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.OpResponse) - }) -_sym_db.RegisterMessage(OpResponse) - -TransactionRequest = _reflection.GeneratedProtocolMessageType('TransactionRequest', (_message.Message,), { - 'DESCRIPTOR' : _TRANSACTIONREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.TransactionRequest) - }) -_sym_db.RegisterMessage(TransactionRequest) - -TransactionResponse = _reflection.GeneratedProtocolMessageType('TransactionResponse', (_message.Message,), { - 'DESCRIPTOR' : _TRANSACTIONRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.TransactionResponse) - }) -_sym_db.RegisterMessage(TransactionResponse) - -WatchCreateRequest = _reflection.GeneratedProtocolMessageType('WatchCreateRequest', (_message.Message,), { - 'DESCRIPTOR' : _WATCHCREATEREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.WatchCreateRequest) - }) -_sym_db.RegisterMessage(WatchCreateRequest) - -WatchCancelRequest = _reflection.GeneratedProtocolMessageType('WatchCancelRequest', (_message.Message,), { - 'DESCRIPTOR' : _WATCHCANCELREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.WatchCancelRequest) - }) -_sym_db.RegisterMessage(WatchCancelRequest) - -WatchRequest = _reflection.GeneratedProtocolMessageType('WatchRequest', (_message.Message,), { - 'DESCRIPTOR' : _WATCHREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.WatchRequest) - }) -_sym_db.RegisterMessage(WatchRequest) - -WatchResponse = _reflection.GeneratedProtocolMessageType('WatchResponse', (_message.Message,), { - 'DESCRIPTOR' : _WATCHRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.WatchResponse) - }) -_sym_db.RegisterMessage(WatchResponse) - -ContainerInstance = _reflection.GeneratedProtocolMessageType('ContainerInstance', (_message.Message,), { - 'DESCRIPTOR' : _CONTAINERINSTANCE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ContainerInstance) - }) -_sym_db.RegisterMessage(ContainerInstance) - -ContainersRequest = _reflection.GeneratedProtocolMessageType('ContainersRequest', (_message.Message,), { - 'DESCRIPTOR' : _CONTAINERSREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ContainersRequest) - }) -_sym_db.RegisterMessage(ContainersRequest) - -ContainersResponse = _reflection.GeneratedProtocolMessageType('ContainersResponse', (_message.Message,), { - 'DESCRIPTOR' : _CONTAINERSRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ContainersResponse) - }) -_sym_db.RegisterMessage(ContainersResponse) - -ScaleRequest = _reflection.GeneratedProtocolMessageType('ScaleRequest', (_message.Message,), { - 'DESCRIPTOR' : _SCALEREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.ScaleRequest) - }) -_sym_db.RegisterMessage(ScaleRequest) - -AddContainerRequest = _reflection.GeneratedProtocolMessageType('AddContainerRequest', (_message.Message,), { - - 'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), { - 'DESCRIPTOR' : _ADDCONTAINERREQUEST_ENVENTRY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.AddContainerRequest.EnvEntry) - }) - , - 'DESCRIPTOR' : _ADDCONTAINERREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.AddContainerRequest) - }) -_sym_db.RegisterMessage(AddContainerRequest) -_sym_db.RegisterMessage(AddContainerRequest.EnvEntry) - -SetProgressRequest = _reflection.GeneratedProtocolMessageType('SetProgressRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETPROGRESSREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.SetProgressRequest) - }) -_sym_db.RegisterMessage(SetProgressRequest) - -Proxy = _reflection.GeneratedProtocolMessageType('Proxy', (_message.Message,), { - 'DESCRIPTOR' : _PROXY, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.Proxy) - }) -_sym_db.RegisterMessage(Proxy) - -RemoveProxyRequest = _reflection.GeneratedProtocolMessageType('RemoveProxyRequest', (_message.Message,), { - 'DESCRIPTOR' : _REMOVEPROXYREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.RemoveProxyRequest) - }) -_sym_db.RegisterMessage(RemoveProxyRequest) - -UIInfoRequest = _reflection.GeneratedProtocolMessageType('UIInfoRequest', (_message.Message,), { - 'DESCRIPTOR' : _UIINFOREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.UIInfoRequest) - }) -_sym_db.RegisterMessage(UIInfoRequest) - -UIInfoResponse = _reflection.GeneratedProtocolMessageType('UIInfoResponse', (_message.Message,), { - 'DESCRIPTOR' : _UIINFORESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.UIInfoResponse) - }) -_sym_db.RegisterMessage(UIInfoResponse) - -GetProxiesRequest = _reflection.GeneratedProtocolMessageType('GetProxiesRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETPROXIESREQUEST, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.GetProxiesRequest) - }) -_sym_db.RegisterMessage(GetProxiesRequest) - -GetProxiesResponse = _reflection.GeneratedProtocolMessageType('GetProxiesResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETPROXIESRESPONSE, - '__module__' : 'skein_pb2' - # @@protoc_insertion_point(class_scope:skein.GetProxiesResponse) - }) -_sym_db.RegisterMessage(GetProxiesResponse) - - -DESCRIPTOR._options = None -_SERVICE_FILESENTRY._options = None -_SERVICE_ENVENTRY._options = None -_MASTER_FILESENTRY._options = None -_MASTER_ENVENTRY._options = None -_APPLICATIONSPEC_SERVICESENTRY._options = None -_LOGSRESPONSE_LOGSENTRY._options = None -_ADDCONTAINERREQUEST_ENVENTRY._options = None - -_DRIVER = _descriptor.ServiceDescriptor( - name='Driver', - full_name='skein.Driver', - file=DESCRIPTOR, - index=0, - serialized_options=None, - serialized_start=7220, - serialized_end=7879, - methods=[ - _descriptor.MethodDescriptor( - name='ping', - full_name='skein.Driver.ping', - index=0, - containing_service=None, - input_type=_EMPTY, - output_type=_EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getStatus', - full_name='skein.Driver.getStatus', - index=1, - containing_service=None, - input_type=_APPLICATION, - output_type=_APPLICATIONREPORT, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getApplications', - full_name='skein.Driver.getApplications', - index=2, - containing_service=None, - input_type=_APPLICATIONSREQUEST, - output_type=_APPLICATIONSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getNodes', - full_name='skein.Driver.getNodes', - index=3, - containing_service=None, - input_type=_NODESREQUEST, - output_type=_NODESRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getQueue', - full_name='skein.Driver.getQueue', - index=4, - containing_service=None, - input_type=_QUEUEREQUEST, - output_type=_QUEUE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getChildQueues', - full_name='skein.Driver.getChildQueues', - index=5, - containing_service=None, - input_type=_QUEUEREQUEST, - output_type=_QUEUESRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getAllQueues', - full_name='skein.Driver.getAllQueues', - index=6, - containing_service=None, - input_type=_EMPTY, - output_type=_QUEUESRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='moveApplication', - full_name='skein.Driver.moveApplication', - index=7, - containing_service=None, - input_type=_MOVEREQUEST, - output_type=_EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='submit', - full_name='skein.Driver.submit', - index=8, - containing_service=None, - input_type=_APPLICATIONSPEC, - output_type=_APPLICATION, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='waitForStart', - full_name='skein.Driver.waitForStart', - index=9, - containing_service=None, - input_type=_APPLICATION, - output_type=_APPLICATIONREPORT, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='kill', - full_name='skein.Driver.kill', - index=10, - containing_service=None, - input_type=_KILLREQUEST, - output_type=_EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getLogs', - full_name='skein.Driver.getLogs', - index=11, - containing_service=None, - input_type=_LOGSREQUEST, - output_type=_LOGSRESPONSE, - serialized_options=None, - ), -]) -_sym_db.RegisterServiceDescriptor(_DRIVER) - -DESCRIPTOR.services_by_name['Driver'] = _DRIVER - - -_APPMASTER = _descriptor.ServiceDescriptor( - name='AppMaster', - full_name='skein.AppMaster', - file=DESCRIPTOR, - index=1, - serialized_options=None, - serialized_start=7882, - serialized_end=8835, - methods=[ - _descriptor.MethodDescriptor( - name='shutdown', - full_name='skein.AppMaster.shutdown', - index=0, - containing_service=None, - input_type=_SHUTDOWNREQUEST, - output_type=_EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetRange', - full_name='skein.AppMaster.GetRange', - index=1, - containing_service=None, - input_type=_GETRANGEREQUEST, - output_type=_GETRANGERESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='PutKey', - full_name='skein.AppMaster.PutKey', - index=2, - containing_service=None, - input_type=_PUTKEYREQUEST, - output_type=_PUTKEYRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='DeleteRange', - full_name='skein.AppMaster.DeleteRange', - index=3, - containing_service=None, - input_type=_DELETERANGEREQUEST, - output_type=_DELETERANGERESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='Transaction', - full_name='skein.AppMaster.Transaction', - index=4, - containing_service=None, - input_type=_TRANSACTIONREQUEST, - output_type=_TRANSACTIONRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='Watch', - full_name='skein.AppMaster.Watch', - index=5, - containing_service=None, - input_type=_WATCHREQUEST, - output_type=_WATCHRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getApplicationSpec', - full_name='skein.AppMaster.getApplicationSpec', - index=6, - containing_service=None, - input_type=_EMPTY, - output_type=_APPLICATIONSPEC, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='getContainers', - full_name='skein.AppMaster.getContainers', - index=7, - containing_service=None, - input_type=_CONTAINERSREQUEST, - output_type=_CONTAINERSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='killContainer', - full_name='skein.AppMaster.killContainer', - index=8, - containing_service=None, - input_type=_CONTAINERINSTANCE, - output_type=_EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='scale', - full_name='skein.AppMaster.scale', - index=9, - containing_service=None, - input_type=_SCALEREQUEST, - output_type=_CONTAINERSRESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='addContainer', - full_name='skein.AppMaster.addContainer', - index=10, - containing_service=None, - input_type=_ADDCONTAINERREQUEST, - output_type=_CONTAINER, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='SetProgress', - full_name='skein.AppMaster.SetProgress', - index=11, - containing_service=None, - input_type=_SETPROGRESSREQUEST, - output_type=_EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='AddProxy', - full_name='skein.AppMaster.AddProxy', - index=12, - containing_service=None, - input_type=_PROXY, - output_type=_EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='RemoveProxy', - full_name='skein.AppMaster.RemoveProxy', - index=13, - containing_service=None, - input_type=_REMOVEPROXYREQUEST, - output_type=_EMPTY, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='UiInfo', - full_name='skein.AppMaster.UiInfo', - index=14, - containing_service=None, - input_type=_UIINFOREQUEST, - output_type=_UIINFORESPONSE, - serialized_options=None, - ), - _descriptor.MethodDescriptor( - name='GetProxies', - full_name='skein.AppMaster.GetProxies', - index=15, - containing_service=None, - input_type=_GETPROXIESREQUEST, - output_type=_GETPROXIESRESPONSE, - serialized_options=None, - ), -]) -_sym_db.RegisterServiceDescriptor(_APPMASTER) - -DESCRIPTOR.services_by_name['AppMaster'] = _APPMASTER - -# @@protoc_insertion_point(module_scope) From 58e419f7808826ffd2089db7abdfc2e95ed0a072 Mon Sep 17 00:00:00 2001 From: georgepachitariu Date: Thu, 12 Mar 2020 17:12:49 +0100 Subject: [PATCH 4/8] I cleaned 2 files --- java/skein.iml | 208 ------------------------------------------ skein/test/test_kv.py | 1 - 2 files changed, 209 deletions(-) delete mode 100644 java/skein.iml diff --git a/java/skein.iml b/java/skein.iml deleted file mode 100644 index 8e9be239..00000000 --- a/java/skein.iml +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/skein/test/test_kv.py b/skein/test/test_kv.py index 060b7e50..617e914e 100644 --- a/skein/test/test_kv.py +++ b/skein/test/test_kv.py @@ -378,7 +378,6 @@ def test_key_value_mutablemapping(kv_test_app): with pytest.raises(TypeError): kv_test_app.kv.update({'a': 1}, {'b': 2}) -#George def test_key_value_count(kv_test_app): kv_test_app.kv.update(kv_test_data) assert kv_test_app.kv.count() == 7 From 397034c96915d92d6758e543d653ab9df70c9d75 Mon Sep 17 00:00:00 2001 From: georgepachitariu Date: Thu, 12 Mar 2020 18:43:55 +0100 Subject: [PATCH 5/8] log4j ended up being added twice and we had this problem https://stackoverflow.com/questions/48033792/log4j2-error-statuslogger-unrecognized-conversion-specifier --- java/pom.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/java/pom.xml b/java/pom.xml index b16c0c84..1a3997f2 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -411,6 +411,18 @@ org.apache.hbase hbase-client + + org.apache.logging.log4j + log4j-1.2-api + + + org.apache.logging.log4j + log4j-web + + + org.apache.logging.log4j + log4j-slf4j-impl + From 16f669e1cd43b7c98eef8d2102e442419354e26c Mon Sep 17 00:00:00 2001 From: georgepachitariu Date: Fri, 13 Mar 2020 11:01:47 +0100 Subject: [PATCH 6/8] I put back the exception message --- java/src/main/java/com/anaconda/skein/Driver.java | 1 + 1 file changed, 1 insertion(+) diff --git a/java/src/main/java/com/anaconda/skein/Driver.java b/java/src/main/java/com/anaconda/skein/Driver.java index aa7255ad..f05a95fc 100644 --- a/java/src/main/java/com/anaconda/skein/Driver.java +++ b/java/src/main/java/com/anaconda/skein/Driver.java @@ -1125,6 +1125,7 @@ public void submit(Msg.ApplicationSpec req, resp.onError(Status.INTERNAL .withDescription("Failed to submit application, " + "exception:\n" + + exc.getMessage() + sw.toString()) .asRuntimeException()); return; From 4856530bb340df189f70c7efedccc43c2c2cfe1d Mon Sep 17 00:00:00 2001 From: georgepachitariu Date: Fri, 20 Mar 2020 17:27:13 +0100 Subject: [PATCH 7/8] Implemented the notes from the first review --- java/pom.xml | 27 +--- .../skein/DelegationTokenManager.java | 128 ++++++++++++++++++ .../main/java/com/anaconda/skein/Driver.java | 27 ++-- .../main/java/com/anaconda/skein/Model.java | 36 +++-- .../java/com/anaconda/skein/MsgUtils.java | 17 +-- .../skein/credentials/CredentialProvider.java | 9 -- .../skein/credentials/HdfsCredentials.java | 71 ---------- .../skein/credentials/HiveCredentials.java | 68 ---------- java/src/main/proto/skein.proto | 7 +- skein/__init__.py | 2 +- skein/model.py | 102 +++++++------- skein/proto/__init__.py | 2 +- skein/test/test_model.py | 13 +- 13 files changed, 233 insertions(+), 276 deletions(-) create mode 100644 java/src/main/java/com/anaconda/skein/DelegationTokenManager.java delete mode 100644 java/src/main/java/com/anaconda/skein/credentials/CredentialProvider.java delete mode 100644 java/src/main/java/com/anaconda/skein/credentials/HdfsCredentials.java delete mode 100644 java/src/main/java/com/anaconda/skein/credentials/HiveCredentials.java diff --git a/java/pom.xml b/java/pom.xml index 1a3997f2..a3ed1675 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -398,32 +398,7 @@ org.apache.hive hive-jdbc ${hiveVersion} - - - org.apache.hadoop - hadoop-hdfs - - - org.apache.hive - hive-llap-server - - - org.apache.hbase - hbase-client - - - org.apache.logging.log4j - log4j-1.2-api - - - org.apache.logging.log4j - log4j-web - - - org.apache.logging.log4j - log4j-slf4j-impl - - + provided diff --git a/java/src/main/java/com/anaconda/skein/DelegationTokenManager.java b/java/src/main/java/com/anaconda/skein/DelegationTokenManager.java new file mode 100644 index 00000000..17425551 --- /dev/null +++ b/java/src/main/java/com/anaconda/skein/DelegationTokenManager.java @@ -0,0 +1,128 @@ +package com.anaconda.skein; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.DataOutputBuffer; +import org.apache.hadoop.io.Text; +import org.apache.hadoop.mapreduce.security.TokenCache; +import org.apache.hadoop.mapreduce.security.token.delegation.DelegationTokenIdentifier; +import org.apache.hadoop.security.Credentials; +import org.apache.hadoop.security.token.Token; +import org.apache.hadoop.security.token.TokenIdentifier; +import org.apache.hadoop.yarn.client.ClientRMProxy; +import org.apache.hadoop.yarn.client.api.YarnClient; +import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.exceptions.YarnException; +import org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier; +import org.apache.hadoop.yarn.util.ConverterUtils; +import org.apache.hive.jdbc.HiveConnection; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +public class DelegationTokenManager { + private static final Logger LOG = LoggerFactory.getLogger(DelegationTokenManager.class); + private Credentials credentials; + private final List delegationTokenProviders; + + public DelegationTokenManager() { this.delegationTokenProviders=new LinkedList<>(); } + + public void addTokenProvider(Model.DelegationTokenProvider p) { this.delegationTokenProviders.add(p); } + + public void initializeCredentials(Credentials credentials) { this.credentials = credentials; } + + public void obtainTokensHDFS(YarnClient yarnClient, FileSystem fs, Model.ApplicationSpec spec, + Configuration conf) throws IOException, YarnException { + // Collect security tokens as needed + LOG.debug("Collecting filesystem delegation tokens"); + + List l= spec.getFileSystems(); + l.add(0, new Path(fs.getUri())); + + TokenCache.obtainTokensForNamenodes(this.credentials, + l.toArray(new Path[l.size()]), conf); + + boolean hasRMToken = false; + for (Token token: this.credentials.getAllTokens()) { + if (token.getKind().equals(RMDelegationTokenIdentifier.KIND_NAME)) { + LOG.debug("RM delegation token already acquired"); + hasRMToken = true; + break; + } + } + if (!hasRMToken) { + LOG.debug("Adding RM delegation token"); + Text rmDelegationTokenService = ClientRMProxy.getRMDelegationTokenService(conf); + String tokenRenewer = conf.get(YarnConfiguration.RM_PRINCIPAL); + org.apache.hadoop.yarn.api.records.Token rmDelegationToken = + yarnClient.getRMDelegationToken(new Text(tokenRenewer)); + Token rmToken = ConverterUtils.convertFromYarn( + rmDelegationToken, rmDelegationTokenService + ); + this.credentials.addToken(rmDelegationTokenService, rmToken); + } + } + + private Text getUniqueAlias(Token token) { + return new Text(String.format("%s_%s_%d", token.getKind().toString(), + token.getService().toString(), System.currentTimeMillis())); + } + + // Delegation token based connection is explained here: + // https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-Multi-UserScenariosandProgrammaticLogintoKerberosKDC + // This method is inspired from org.apache.oozie.action.hadoop.Hive2Credentials which does the same thing for Oozie. + public void obtainTokensHive(Map config, String user) { + String jdbcUrl = config.get("hive.jdbc.url"); + String principal = config.get("hive.jdbc.principal"); + String fullUrl = jdbcUrl + ";principal=" + principal + ";hive.server2.proxy.user=" + user; + + try { + // load the driver + Class.forName("org.apache.hive.jdbc.HiveDriver"); + + Connection con = null; + String tokenStr = null; + try { + con = DriverManager.getConnection(fullUrl); + LOG.info("Connected successfully to " + fullUrl); + tokenStr = ((HiveConnection)con).getDelegationToken(user, principal); + } finally { + if (con != null) { con.close(); } + } + LOG.info("Got Hive Server token from " + fullUrl); + + Token hiveToken = new Token(); + hiveToken.decodeFromUrlString(tokenStr); + credentials.addToken(getUniqueAlias(hiveToken), hiveToken); + } catch (IOException | SQLException | ClassNotFoundException e) { + e.printStackTrace(); + } + } + + // For some systems (like Hive) to obtain the delegation token we need to do it + // while we are authenticated with kerberos, before we impersonate the user. + public void obtainTokensWithoutImpersonation(String userWeAuthenticateFor) throws IllegalArgumentException { + for (Model.DelegationTokenProvider p : this.delegationTokenProviders) { + if(p.getName().equals("hive")) { + this.obtainTokensHive(p.getConfig(), userWeAuthenticateFor); + } else { + throw new IllegalArgumentException("The Provider for Delegation Token was not found"); + } + } + } + + public ByteBuffer toBytes() throws IOException { + DataOutputBuffer dob = new DataOutputBuffer(); + this.credentials.writeTokenStorageToStream(dob); + return ByteBuffer.wrap(dob.getData(), 0, dob.getLength()); + } +} diff --git a/java/src/main/java/com/anaconda/skein/Driver.java b/java/src/main/java/com/anaconda/skein/Driver.java index f05a95fc..023b7169 100644 --- a/java/src/main/java/com/anaconda/skein/Driver.java +++ b/java/src/main/java/com/anaconda/skein/Driver.java @@ -1,7 +1,5 @@ package com.anaconda.skein; -import com.anaconda.skein.credentials.CredentialProvider; -import com.anaconda.skein.credentials.HdfsCredentials; import com.google.common.base.Strings; import com.google.protobuf.ByteString; @@ -21,8 +19,6 @@ import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.permission.FsPermission; -import org.apache.hadoop.io.DataOutputBuffer; -import org.apache.hadoop.security.Credentials; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.yarn.api.ApplicationConstants.Environment; import org.apache.hadoop.yarn.api.ApplicationConstants; @@ -346,28 +342,24 @@ private void killApplicationInner(YarnClient yarnClient, FileSystem fs, /** Start a new application. **/ public ApplicationId submitApplication(final Model.ApplicationSpec spec) throws IOException, YarnException, InterruptedException { - final Credentials cred = UserGroupInformation.getCurrentUser().getCredentials(); + DelegationTokenManager tokenManager = spec.getDelegationTokenManager(); + tokenManager.initializeCredentials(UserGroupInformation.getCurrentUser().getCredentials()); if (spec.getUser().isEmpty()) { - return submitApplicationInner(defaultYarnClient, defaultFileSystem, spec, cred); + return submitApplicationInner(defaultYarnClient, defaultFileSystem, spec); } else { - // We need to obtain additional delegation token from systems while - // we are authenticated with kerberos, before we impersonate the user. - for(CredentialProvider c : spec.getCredentialProviders()) { - c.updateCredentials(cred); - } + tokenManager.obtainTokensWithoutImpersonation(spec.getUser()); return UserGroupInformation.createProxyUser(spec.getUser(), ugi).doAs( new PrivilegedExceptionAction() { public ApplicationId run() throws IOException, YarnException { - return submitApplicationInner(getYarnClient(), getFs(), spec, cred); + return submitApplicationInner(getYarnClient(), getFs(), spec); } }); } } - private ApplicationId submitApplicationInner(YarnClient yarnClient, FileSystem fs, Model.ApplicationSpec spec, - Credentials cred) throws IOException, YarnException { + private ApplicationId submitApplicationInner(YarnClient yarnClient, FileSystem fs, Model.ApplicationSpec spec) throws IOException, YarnException { // First validate the spec request spec.validate(); @@ -411,10 +403,9 @@ private ApplicationId submitApplicationInner(YarnClient yarnClient, FileSystem f ByteBuffer fsTokens = null; if (UserGroupInformation.isSecurityEnabled()) { - new HdfsCredentials(yarnClient, fs, spec, conf).updateCredentials(cred); - DataOutputBuffer dob = new DataOutputBuffer(); - cred.writeTokenStorageToStream(dob); - fsTokens = ByteBuffer.wrap(dob.getData(), 0, dob.getLength()); + DelegationTokenManager tokenManager = spec.getDelegationTokenManager(); + tokenManager.obtainTokensHDFS(yarnClient, fs, spec, conf); + fsTokens = tokenManager.toBytes(); // We cancel the delegation token when the job finishes, so that it cannot be used elsewhere conf.setBoolean("mapreduce.job.complete.cancel.delegation.tokens", true); diff --git a/java/src/main/java/com/anaconda/skein/Model.java b/java/src/main/java/com/anaconda/skein/Model.java index 010ea989..68a0fb5d 100644 --- a/java/src/main/java/com/anaconda/skein/Model.java +++ b/java/src/main/java/com/anaconda/skein/Model.java @@ -1,6 +1,5 @@ package com.anaconda.skein; -import com.anaconda.skein.credentials.CredentialProvider; import com.google.protobuf.ByteString; import org.apache.hadoop.fs.Path; @@ -144,7 +143,24 @@ public void validate() throws IllegalArgumentException { } } - public static class Acls { + public static class DelegationTokenProvider { + private String name; + private Map config; + + public DelegationTokenProvider(String name, Map config) { + this.name = name; + this.config = config; + } + + public String getName() { return name;} + public void setName(String name) { this.name = name;} + + public Map getConfig() {return config;} + public void setConfig(Map config) { this.config = config;} + } + + + public static class Acls { private boolean enable; private List viewUsers; private List viewGroups; @@ -293,6 +309,8 @@ public void validate() throws IllegalArgumentException { } } + + public static class ApplicationSpec { private String name; private String queue; @@ -301,7 +319,7 @@ public static class ApplicationSpec { private int maxAttempts; private Set tags; private List fileSystems; - private List credentialProviders; + private DelegationTokenManager delegationTokenManager; private Acls acls; private Master master; private Map services; @@ -310,7 +328,7 @@ public ApplicationSpec() {} public ApplicationSpec(String name, String queue, String user, String nodeLabel, int maxAttempts, Set tags, - List fileSystems, List credentialProviders, + List fileSystems, DelegationTokenManager delegationTokenManager, Acls acls, Master master, Map services) { this.name = name; this.queue = queue; @@ -319,7 +337,7 @@ public ApplicationSpec(String name, String queue, String user, this.maxAttempts = maxAttempts; this.tags = tags; this.fileSystems = fileSystems; - this.credentialProviders = credentialProviders; + this.delegationTokenManager = delegationTokenManager; this.acls = acls; this.master = master; this.services = services; @@ -333,7 +351,7 @@ public String toString() { + "maxAttempts: " + maxAttempts + ", " + "tags: " + tags + ", " + "fileSystems" + fileSystems + ", " - + "delegationTokenSystems" + credentialProviders + ", " + + "delegationTokenManager" + delegationTokenManager + ", " + "services: " + services + ">"); } @@ -360,10 +378,10 @@ public void setFileSystems(List fileSystems) { } public List getFileSystems() { return this.fileSystems; } - public void setCredentialProviders(List credentialProviders) { - this.credentialProviders = credentialProviders; + public void setDelegationTokenManager(DelegationTokenManager delegationTokenManager) { + this.delegationTokenManager = delegationTokenManager; } - public List getCredentialProviders() { return this.credentialProviders; } + public DelegationTokenManager getDelegationTokenManager() { return this.delegationTokenManager; } public void setAcls(Acls acls) { this.acls = acls; } public Acls getAcls() { return this.acls; } diff --git a/java/src/main/java/com/anaconda/skein/MsgUtils.java b/java/src/main/java/com/anaconda/skein/MsgUtils.java index a91d9c1a..dc6dafa3 100644 --- a/java/src/main/java/com/anaconda/skein/MsgUtils.java +++ b/java/src/main/java/com/anaconda/skein/MsgUtils.java @@ -1,7 +1,5 @@ package com.anaconda.skein; -import com.anaconda.skein.credentials.CredentialProvider; -import com.anaconda.skein.credentials.HiveCredentials; import com.google.common.base.Functions; import com.google.common.base.Strings; import com.google.common.collect.Lists; @@ -603,16 +601,13 @@ public static Model.ApplicationSpec readApplicationSpec(Msg.ApplicationSpec spec } final List fileSystems = new ArrayList(); - for (int i = 0; i < spec.getFileSystemsCount(); i++) { - fileSystems.add(new Path(spec.getFileSystems(i))); + for (String f: spec.getFileSystemsList()) { + fileSystems.add(new Path(f)); } - final List credentialProviders = new LinkedList(); - for(int i = 0; i < spec.getCredentialProvidersCount(); i++) { - Msg.CredentialProviderSpec d = spec.getCredentialProviders(i); - if (d.getName().equals("hive")) { - credentialProviders.add(new HiveCredentials(d, spec.getUser())); - } + final DelegationTokenManager delegationTokenManager = new DelegationTokenManager(); + for(Msg.DelegationTokenProviderSpec s :spec.getDelegationTokenProvidersList()) { + delegationTokenManager.addTokenProvider(new Model.DelegationTokenProvider(s.getName(), s.getConfigMap())); } return new Model.ApplicationSpec(spec.getName(), @@ -622,7 +617,7 @@ public static Model.ApplicationSpec readApplicationSpec(Msg.ApplicationSpec spec spec.getMaxAttempts(), new HashSet(spec.getTagsList()), fileSystems, - credentialProviders, + delegationTokenManager, readAcls(spec.getAcls()), readMaster(spec.getMaster()), services); diff --git a/java/src/main/java/com/anaconda/skein/credentials/CredentialProvider.java b/java/src/main/java/com/anaconda/skein/credentials/CredentialProvider.java deleted file mode 100644 index 2ce0518d..00000000 --- a/java/src/main/java/com/anaconda/skein/credentials/CredentialProvider.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.anaconda.skein.credentials; - -import org.apache.hadoop.security.Credentials; -import org.apache.hadoop.yarn.exceptions.YarnException; -import java.io.IOException; - -public interface CredentialProvider { - public void updateCredentials(Credentials credentials) throws IOException, YarnException; -} \ No newline at end of file diff --git a/java/src/main/java/com/anaconda/skein/credentials/HdfsCredentials.java b/java/src/main/java/com/anaconda/skein/credentials/HdfsCredentials.java deleted file mode 100644 index 619b58e8..00000000 --- a/java/src/main/java/com/anaconda/skein/credentials/HdfsCredentials.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.anaconda.skein.credentials; - -import com.anaconda.skein.Driver; -import com.anaconda.skein.Model; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.FileSystem; -import org.apache.hadoop.fs.Path; -import org.apache.hadoop.io.Text; -import org.apache.hadoop.mapreduce.security.TokenCache; -import org.apache.hadoop.security.Credentials; -import org.apache.hadoop.security.token.Token; -import org.apache.hadoop.security.token.TokenIdentifier; -import org.apache.hadoop.yarn.client.ClientRMProxy; -import org.apache.hadoop.yarn.client.api.YarnClient; -import org.apache.hadoop.yarn.conf.YarnConfiguration; -import org.apache.hadoop.yarn.exceptions.YarnException; -import org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier; -import org.apache.hadoop.yarn.util.ConverterUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.util.List; - -public class HdfsCredentials implements CredentialProvider { - private static final Logger LOG = LoggerFactory.getLogger(Driver.class); - private final YarnClient yarnClient; - private final FileSystem fs; - private final Model.ApplicationSpec spec; - private final Configuration conf; - - public HdfsCredentials(YarnClient yarnClient, FileSystem fs, - Model.ApplicationSpec spec, Configuration conf) { - this.yarnClient = yarnClient; - this.fs = fs; - this.spec = spec; - this.conf=conf; - } - - @Override - public void updateCredentials(Credentials credentials) throws IOException, YarnException { - // Collect security tokens as needed - LOG.debug("Collecting filesystem delegation tokens"); - - List l= spec.getFileSystems(); - l.add(0, new Path(fs.getUri())); - - TokenCache.obtainTokensForNamenodes(credentials, - l.toArray(new Path[l.size()]), conf); - - boolean hasRMToken = false; - for (Token token: credentials.getAllTokens()) { - if (token.getKind().equals(RMDelegationTokenIdentifier.KIND_NAME)) { - LOG.debug("RM delegation token already acquired"); - hasRMToken = true; - break; - } - } - if (!hasRMToken) { - LOG.debug("Adding RM delegation token"); - Text rmDelegationTokenService = ClientRMProxy.getRMDelegationTokenService(conf); - String tokenRenewer = conf.get(YarnConfiguration.RM_PRINCIPAL); - org.apache.hadoop.yarn.api.records.Token rmDelegationToken = - yarnClient.getRMDelegationToken(new Text(tokenRenewer)); - Token rmToken = ConverterUtils.convertFromYarn( - rmDelegationToken, rmDelegationTokenService - ); - credentials.addToken(rmDelegationTokenService, rmToken); - } - } -} diff --git a/java/src/main/java/com/anaconda/skein/credentials/HiveCredentials.java b/java/src/main/java/com/anaconda/skein/credentials/HiveCredentials.java deleted file mode 100644 index 7cf6b245..00000000 --- a/java/src/main/java/com/anaconda/skein/credentials/HiveCredentials.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.anaconda.skein.credentials; - -import com.anaconda.skein.Driver; -import com.anaconda.skein.Msg; -import org.apache.hadoop.io.Text; -import org.apache.hadoop.mapreduce.security.token.delegation.DelegationTokenIdentifier; -import org.apache.hadoop.security.Credentials; -import org.apache.hadoop.security.token.Token; -import org.apache.hive.jdbc.HiveConnection; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; - -// Delegation token based connection is explained here: -// https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-Multi-UserScenariosandProgrammaticLogintoKerberosKDC -// This class is inspired from org.apache.oozie.action.hadoop.Hive2Credentials which does the same thing for Oozie. -public class HiveCredentials implements CredentialProvider { - private static final Logger LOG = LoggerFactory.getLogger(Driver.class); - protected final String jdbcUrl; - protected final String principal; - protected final String user; - - public HiveCredentials(Msg.CredentialProviderSpec spec, String user) { - this.jdbcUrl = spec.getUri(); - this.principal = spec.getPrincipal(); - this.user = user; - } - - @Override - public void updateCredentials(Credentials credentials) { - try { - // load the driver - Class.forName("org.apache.hive.jdbc.HiveDriver"); - String fullUrl = jdbcUrl + ";principal=" + principal + ";hive.server2.proxy.user=" + user; - - Connection con = null; - String tokenStr = null; - try { - con = DriverManager.getConnection(fullUrl); - LOG.info("Connected successfully to " + fullUrl); - tokenStr = ((HiveConnection)con).getDelegationToken(user, principal); - } finally { - if (con != null) { - con.close(); - } - } - LOG.info("Got Hive Server token from " + fullUrl); - - Token hiveToken = new Token(); - hiveToken.decodeFromUrlString(tokenStr); - credentials.addToken(getUniqueAlias(hiveToken), hiveToken); - } catch (IOException e) { - e.printStackTrace(); - } catch (SQLException e) { - e.printStackTrace(); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } - } - - public Text getUniqueAlias(Token token) { - return new Text(String.format("%s_%s_%d", token.getKind().toString(), - token.getService().toString(), System.currentTimeMillis())); - } -} diff --git a/java/src/main/proto/skein.proto b/java/src/main/proto/skein.proto index bc563197..183f927a 100644 --- a/java/src/main/proto/skein.proto +++ b/java/src/main/proto/skein.proto @@ -140,10 +140,9 @@ message Master { } -message CredentialProviderSpec { +message DelegationTokenProviderSpec { string name = 1; - string uri = 2; - string principal = 3; + map config = 2; } @@ -155,7 +154,7 @@ message ApplicationSpec { int32 max_attempts = 5; repeated string tags = 6; repeated string file_systems = 7; - repeated CredentialProviderSpec credential_providers = 8; + repeated DelegationTokenProviderSpec delegation_token_providers = 8; Acls acls = 9; Master master = 10; map services = 11; diff --git a/skein/__init__.py b/skein/__init__.py index e79ba152..2a4d972c 100644 --- a/skein/__init__.py +++ b/skein/__init__.py @@ -3,7 +3,7 @@ from .exceptions import (SkeinError, ConnectionError, DriverNotRunningError, ApplicationNotRunningError, DriverError, ApplicationError) -from .model import (Security, ApplicationSpec, Service, File, Resources, CredentialProviderSpec, +from .model import (Security, ApplicationSpec, Service, File, Resources, DelegationTokenProvider, FileType, FileVisibility, ACLs, Master, LogLevel) from ._version import get_versions diff --git a/skein/model.py b/skein/model.py index da4b3cce..01a2f59a 100644 --- a/skein/model.py +++ b/skein/model.py @@ -16,10 +16,10 @@ xor, lock_file) __all__ = ('ApplicationSpec', 'Service', 'Resources', 'File', 'FileType', - 'FileVisibility', 'ACLs', 'Master', 'CredentialProviderSpec', 'Security', + 'FileVisibility', 'ACLs', 'Master', 'DelegationTokenProvider', 'Security', 'ApplicationState', 'FinalStatus', 'ResourceUsageReport', 'ApplicationReport', 'ContainerState', 'Container', 'LogLevel', 'NodeState', - 'NodeReport','QueueState', 'Queue', 'ApplicationLogs') + 'NodeReport', 'QueueState', 'Queue', 'ApplicationLogs') def _check_is_filename(target): @@ -105,16 +105,16 @@ def parse_memory(s): _byte_sizes = { - 'kb': 10**3, - 'mb': 10**6, - 'gb': 10**9, - 'tb': 10**12, - 'pb': 10**15, - 'kib': 2**10, - 'mib': 2**20, - 'gib': 2**30, - 'tib': 2**40, - 'pib': 2**50, + 'kb': 10 ** 3, + 'mb': 10 ** 6, + 'gb': 10 ** 9, + 'tb': 10 ** 12, + 'pb': 10 ** 15, + 'kib': 2 ** 10, + 'mib': 2 ** 20, + 'gib': 2 ** 30, + 'tib': 2 ** 40, + 'pib': 2 ** 50, 'b': 1, '': 2 ** 20 } @@ -443,13 +443,13 @@ def new_credentials(cls): [x509.NameAttribute(NameOID.COMMON_NAME, u'skein-internal')]) now = datetime.utcnow() cert = (x509.CertificateBuilder() - .subject_name(subject) - .issuer_name(issuer) - .public_key(key.public_key()) - .serial_number(x509.random_serial_number()) - .not_valid_before(now) - .not_valid_after(now + timedelta(days=365)) - .sign(key, hashes.SHA256(), default_backend())) + .subject_name(subject) + .issuer_name(issuer) + .public_key(key.public_key()) + .serial_number(x509.random_serial_number()) + .not_valid_before(now) + .not_valid_after(now + timedelta(days=365)) + .sign(key, hashes.SHA256(), default_backend())) cert_bytes = cert.public_bytes(serialization.Encoding.PEM) @@ -1152,36 +1152,34 @@ def from_protobuf(cls, obj): security=security) -class CredentialProviderSpec(Specification): - """Configuration for the Credential Provider. +class DelegationTokenProvider(Specification): + """Configuration for the Delegation Token Provider. Parameters ---------- name : str Describes the name system for which to get the delegation token. Ex: 'hive' - uri : str, optional - Describes the uri of the system to connect to. - principal : str - Describes the kerberos principal of the system. + config : dict + A mapping that contains the configuration to connect to external systems + to get the delegation token """ - __slots__ = ('name', 'uri', 'principal') - _params = ('name', 'uri', 'principal') - _protobuf_cls = _proto.CredentialProviderSpec + __slots__ = ('name', 'config') + _params = ('name', 'config') + _protobuf_cls = _proto.DelegationTokenProviderSpec - def __init__(self, name='', uri='', principal=''): + def __init__(self, name='', config=None): self.name = name - self.uri = uri - self.principal = principal + # in one of the tests `config` is a protobuf ScalarMapContainer and I convert it to `dict` + self.config = {} if config is None else dict(config) self._validate() def _validate(self): self._check_is_type('name', str) - self._check_is_type('uri', str) - self._check_is_type('principal', str) + self._check_is_dict_of('config', str, str) def __repr__(self): - return 'CredentialProvider<...>' + return 'DelegationTokenProvider<...>' @classmethod @implements(Specification.from_dict) @@ -1190,20 +1188,17 @@ def from_dict(cls, obj, **kwargs): obj = obj.copy() name = obj.pop('name', None) - uri = obj.pop('uri', None) - principal = obj.pop('principal', None) + config = obj.pop('config', None) return cls(name=name, - uri=uri, - principal=principal, + config=config, **obj) @classmethod @implements(Specification.from_protobuf) def from_protobuf(cls, obj): return cls(name=obj.name, - uri=obj.uri, - principal=obj.principal) + config=obj.config) class ApplicationSpec(Specification): @@ -1235,8 +1230,10 @@ class ApplicationSpec(Specification): file_systems : list, optional A list of Hadoop file systems to acquire delegation tokens for. A token is always acquired for the ``defaultFS``. - credential_providers : list, optional - TODO + delegation_token_providers : list, optional + A list of mappings. + Each mapping is for configuring a connection with an external system + and get a delegation token. acls : ACLs, optional Allows restricting users/groups to subsets of application access. See ``skein.ACLs`` for more information. @@ -1246,12 +1243,12 @@ class ApplicationSpec(Specification): application master during startup. Default is 1. """ __slots__ = ('services', 'master', 'name', 'queue', 'user', 'node_label', - 'tags', 'file_systems', 'credential_providers', 'acls', 'max_attempts') + 'tags', 'file_systems', 'delegation_token_providers', 'acls', 'max_attempts') _protobuf_cls = _proto.ApplicationSpec def __init__(self, services=None, master=None, name='skein', queue='default', user='', node_label='', tags=None, - file_systems=None, credential_providers=None, acls=None, max_attempts=1): + file_systems=None, delegation_token_providers=None, acls=None, max_attempts=1): self.services = {} if services is None else services self.master = Master() if master is None else master self.name = name @@ -1260,7 +1257,8 @@ def __init__(self, services=None, master=None, name='skein', self.node_label = node_label self.tags = set() if tags is None else set(tags) self.file_systems = [] if file_systems is None else file_systems - self.credential_providers = [] if credential_providers is None else credential_providers + self.delegation_token_providers = \ + [] if delegation_token_providers is None else delegation_token_providers self.acls = ACLs() if acls is None else acls self.max_attempts = max_attempts self._validate() @@ -1276,7 +1274,7 @@ def _validate(self): self._check_is_type('node_label', str) self._check_is_set_of('tags', str) self._check_is_list_of('file_systems', str) - self._check_is_list_of('credential_providers', CredentialProviderSpec) + self._check_is_list_of('delegation_token_providers', DelegationTokenProvider) self._check_is_bounded_int('max_attempts', min=1) self._check_is_type('acls', ACLs) self.acls._validate() @@ -1333,13 +1331,13 @@ def from_dict(cls, obj, **kwargs): if master is not None and isinstance(master, dict): master = Master.from_dict(master, _origin=_origin) - credential_providers = obj.pop('credential_providers', None) - if credential_providers is not None and isinstance(credential_providers, list): - credential_providers = [ - CredentialProviderSpec.from_dict(p, _origin=_origin) for p in credential_providers] + delegation_token_providers = obj.pop('delegation_token_providers', None) + if delegation_token_providers is not None and isinstance(delegation_token_providers, list): + delegation_token_providers = [ + DelegationTokenProvider.from_dict(p, _origin=_origin) for p in delegation_token_providers] return cls(services=services, acls=acls, master=master, - credential_providers=credential_providers, **obj) + delegation_token_providers=delegation_token_providers, **obj) @classmethod @implements(Specification.from_protobuf) @@ -1352,7 +1350,7 @@ def from_protobuf(cls, obj): node_label=obj.node_label, tags=set(obj.tags), file_systems=list(obj.file_systems), - credential_providers=list(obj.credential_providers), + delegation_token_providers=list(obj.delegation_token_providers), max_attempts=min(1, obj.max_attempts), acls=ACLs.from_protobuf(obj.acls), master=Master.from_protobuf(obj.master), diff --git a/skein/proto/__init__.py b/skein/proto/__init__.py index 460e6176..2cdc159a 100644 --- a/skein/proto/__init__.py +++ b/skein/proto/__init__.py @@ -1,7 +1,7 @@ from __future__ import absolute_import from .skein_pb2 import (Empty, FinalStatus, ApplicationState, Resources, File, - Service, Acls, Log, Master, CredentialProviderSpec, + Service, Acls, Log, Master, DelegationTokenProviderSpec, Security, ApplicationSpec, ResourceUsageReport, ApplicationReport, Application, ApplicationsRequest, Url, ContainersRequest, Container, ContainerInstance, ScaleRequest, AddContainerRequest, diff --git a/skein/test/test_model.py b/skein/test/test_model.py index d545d777..90af37ad 100644 --- a/skein/test/test_model.py +++ b/skein/test/test_model.py @@ -8,7 +8,7 @@ from skein.model import (ApplicationSpec, Service, Resources, File, ApplicationState, FinalStatus, FileType, ACLs, Master, - CredentialProviderSpec, Container, ApplicationReport, + DelegationTokenProvider, Container, ApplicationReport, ResourceUsageReport, NodeReport, LogLevel, parse_memory, Security, Queue, ApplicationLogs) @@ -326,11 +326,12 @@ def test_master_invariants(): Master(files={'./bar': '/source.zip'}) -def test_credential_provider_spec(): - p1 = CredentialProviderSpec(name='hive', - uri='hive2://127.0.0.1:10000/myDatabase', - principal='hive/my.hadoop.mycompany.com@HADOOP.MYCOMPANY.COM') - p3 = CredentialProviderSpec() +def test_delegation_token_provider_spec(): + p1 = DelegationTokenProvider(name='hive', + config={ + 'hive.jdbc.url': 'hive2://127.0.0.1:10000/myDatabase', + 'hive.jdbc.principal': 'hive/my.hadoop.mycompany.com@HADOOP.MYCOMPANY.COM'}) + p3 = DelegationTokenProvider() check_specification_methods(p1, p3) From 85d3c5c1717f9c2758293726fda0520b0f87a8a5 Mon Sep 17 00:00:00 2001 From: georgepachitariu Date: Thu, 2 Apr 2020 22:44:53 +0200 Subject: [PATCH 8/8] Added HCat credential provider --- java/pom.xml | 7 ++++ .../skein/DelegationTokenManager.java | 37 +++++++++++++++++++ skein/model.py | 16 ++++---- 3 files changed, 51 insertions(+), 9 deletions(-) diff --git a/java/pom.xml b/java/pom.xml index a3ed1675..e97406ca 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -401,6 +401,13 @@ provided + + org.apache.hive.hcatalog + hive-webhcat-java-client + ${hiveVersion} + provided + + junit diff --git a/java/src/main/java/com/anaconda/skein/DelegationTokenManager.java b/java/src/main/java/com/anaconda/skein/DelegationTokenManager.java index 17425551..a8a3f8e6 100644 --- a/java/src/main/java/com/anaconda/skein/DelegationTokenManager.java +++ b/java/src/main/java/com/anaconda/skein/DelegationTokenManager.java @@ -3,11 +3,14 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.io.DataOutputBuffer; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.security.TokenCache; import org.apache.hadoop.mapreduce.security.token.delegation.DelegationTokenIdentifier; import org.apache.hadoop.security.Credentials; +import org.apache.hadoop.security.SaslRpcServer; +import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.token.Token; import org.apache.hadoop.security.token.TokenIdentifier; import org.apache.hadoop.yarn.client.ClientRMProxy; @@ -16,6 +19,8 @@ import org.apache.hadoop.yarn.exceptions.YarnException; import org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier; import org.apache.hadoop.yarn.util.ConverterUtils; +import org.apache.hive.hcatalog.api.HCatClient; +import org.apache.hive.hcatalog.common.HCatException; import org.apache.hive.jdbc.HiveConnection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,6 +34,9 @@ import java.util.List; import java.util.Map; +import static org.apache.commons.lang.SystemUtils.USER_NAME; +import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_RPC_PROTECTION; + public class DelegationTokenManager { private static final Logger LOG = LoggerFactory.getLogger(DelegationTokenManager.class); private Credentials credentials; @@ -108,12 +116,41 @@ public void obtainTokensHive(Map config, String user) { } } + // This method is inspired from org.apache.oozie.action.hadoop.HCatCredentials which does the same thing for Oozie. + public void obtainTokensHCat(Map config, String user){ + String principal = config.get("hcat.metastore.principal"); + String server = config.get("hcat.metastore.uri"); + + String protection = "authentication"; // default value + if(config.containsKey(HADOOP_RPC_PROTECTION)) + protection = config.get(HADOOP_RPC_PROTECTION); + + try { + HiveConf hiveConf = new HiveConf(); + hiveConf.set("hive.metastore.sasl.enabled", "true"); + hiveConf.set("hive.metastore.kerberos.principal", principal); + hiveConf.set("hive.metastore.local", "false"); + hiveConf.set(HiveConf.ConfVars.METASTOREURIS.varname, server); + hiveConf.set(HADOOP_RPC_PROTECTION, protection); + + HCatClient hiveClient = HCatClient.create(hiveConf); + String tokenStrForm = hiveClient.getDelegationToken(user, principal); + Token hcatToken = new Token<>(); + hcatToken.decodeFromUrlString(tokenStrForm); + credentials.addToken(getUniqueAlias(hcatToken), hcatToken); + } catch (IOException e) { + e.printStackTrace(); + } + } + // For some systems (like Hive) to obtain the delegation token we need to do it // while we are authenticated with kerberos, before we impersonate the user. public void obtainTokensWithoutImpersonation(String userWeAuthenticateFor) throws IllegalArgumentException { for (Model.DelegationTokenProvider p : this.delegationTokenProviders) { if(p.getName().equals("hive")) { this.obtainTokensHive(p.getConfig(), userWeAuthenticateFor); + } else if(p.getName().equals("hcat")) { + this.obtainTokensHCat(p.getConfig(), userWeAuthenticateFor); } else { throw new IllegalArgumentException("The Provider for Delegation Token was not found"); } diff --git a/skein/model.py b/skein/model.py index 01a2f59a..16a2adfc 100644 --- a/skein/model.py +++ b/skein/model.py @@ -1274,7 +1274,8 @@ def _validate(self): self._check_is_type('node_label', str) self._check_is_set_of('tags', str) self._check_is_list_of('file_systems', str) - self._check_is_list_of('delegation_token_providers', DelegationTokenProvider) + #self._check_is_list_of('delegation_token_providers', DelegationTokenProvider) + self._check_is_type('delegation_token_providers', list) self._check_is_bounded_int('max_attempts', min=1) self._check_is_type('acls', ACLs) self.acls._validate() @@ -1331,26 +1332,23 @@ def from_dict(cls, obj, **kwargs): if master is not None and isinstance(master, dict): master = Master.from_dict(master, _origin=_origin) - delegation_token_providers = obj.pop('delegation_token_providers', None) - if delegation_token_providers is not None and isinstance(delegation_token_providers, list): - delegation_token_providers = [ - DelegationTokenProvider.from_dict(p, _origin=_origin) for p in delegation_token_providers] - - return cls(services=services, acls=acls, master=master, - delegation_token_providers=delegation_token_providers, **obj) + return cls(services=services, acls=acls, master=master, **obj) @classmethod @implements(Specification.from_protobuf) def from_protobuf(cls, obj): services = {k: Service.from_protobuf(v) for k, v in obj.services.items()} + delegation_token_providers = [DelegationTokenProvider.from_protobuf(p) + for p in obj.delegation_token_providers] + return cls(name=obj.name, queue=obj.queue, user=obj.user, node_label=obj.node_label, tags=set(obj.tags), file_systems=list(obj.file_systems), - delegation_token_providers=list(obj.delegation_token_providers), + delegation_token_providers=delegation_token_providers, max_attempts=min(1, obj.max_attempts), acls=ACLs.from_protobuf(obj.acls), master=Master.from_protobuf(obj.master),