Is MIDFIELD for me?
2021 Frontiers in Education (FIE) Conference (Oct 13, 2021)
1 Introduction
1.1 Objectives
MIDFIELD—as of May 1, 2021—contains individual Student Unit Record (SUR) data for 1.7 M undergraduates at 19 institutions with ABET-accredited engineering programs. Of those, 302,631 students declared engineering as a major at some point in their undergraduate education. MIDFIELD is a comprehensive resource that includes demographic, enrollment, course performance, and graduation data. A total of 33 institutions have completed Memoranda of Understanding and are expected to be included in the next release.
At the conclusion of the session, participants should be able to:
- describe MIDFIELD and the data it contains
- describe student record data
- describe some key research results that have been obtained using MIDFIELD
- determine if MIDFIELD would be useful for their research
- outline process to access MIDFIELD
- plan for future workshops if interested in learning more about MIDFIELD
1.2 Description
This special session introduces participants to the Multiple-Institution Database for Investigating Longitudinal Development (MIDFIELD). MIDFIELD includes longitudinal, whole population data for multiple institutions. This enables researchers to examine student characteristics such as race/ethnicity, sex, or age and curricular pathways,including coursework, by institution and over time. Because the data set contains records of all students matriculating over a period of time, researchers can study students in all disciplines, not just engineering.
1.3 Agenda
| Min | Topic |
|---|---|
| 10 | Session introduction |
| 15 | Key research results using MIDFIELD |
| 35 | Finding stories in the data |
| 25 | Resources to facilitate use of MIDFIELD |
| 5 | Wrap-up |
1.4 Facilitators
- Susan Lord
Director of the MIDFIELD Institute and Professor and Chair of Integrated Engineering at the University of San Diego. She is a Fellow of the IEEE and the ASEE. Dr. Lord has considerable experience facilitating workshops including the National Effective Teaching Institute (NETI) and special sessions at FIE<EMAIL_ADDRESS>- Matthew Ohland
MIDFIELD Director and Principal Investigator. He is Professor and Associate Head of Engineering Education at Purdue University and a Fellow of IEEE, ASEE, and AAAS. Dr. Ohland has considerable experience facilitating workshops including the NETI and CATME training<EMAIL_ADDRESS>- Marisa Orr
MIDFIELD Associate Director and Associate Professor in Engineering and Science Education with a joint appointment in Mechanical Engineering at Clemson University. She received the 2009 Helen Plants Award for the best nontraditional session at FIE, “Enhancing Student Learning Using SCALE-UP Format.”<EMAIL_ADDRESS>- Richard Layton
MIDFIELD Data Visualization Specialist and Professor Emeritus of Mechanical Engineering at Rose-Hulman Institute of Technology. He is the lead developer of the R packages used with the MIDFIELD practice data sets. Dr. Layton has considerable experience facilitating workshops, including FIE workshops on data visualization (2014) and midfieldr (2018<EMAIL_ADDRESS>- Russell Long
MIDFIELD Managing Director and Data Steward. He developed the stratified data sample for the R packages used in this workshop. Mr. Long is a SAS expert with over twenty years of experience in institutional research and assessment<EMAIL_ADDRESS>1.5 Licenses
The following licenses apply to the text, data, and code in these workshops. Our goal is to minimize legal encumbrances to the dissemination, sharing, use, and re-use of this work. However, the existing rights of authors whose work is cited (text, code, or data) are reserved to those authors.
1.6 Acknowledgement
Funding provided by the National Science Foundation Grant 1545667 “Expanding Access to and Participation in the Multiple-Institution Database for Investigating Engineering Longitudinal Development.”


Mail
Images
Blogs
Calendar
Chat
Classroom
Collection
documents
Files
Mail
Maps
More
Mars
Mic
News
Photo
Promo
Search
Tanslatio
Videos
Apps
Even more from Kottans


Author: Edward A. Lee<EMAIL_ADDRESS>The Tcl commands defined here implement an interface to the Ptolemy
kernel that is significantly richer than the older ptcl
interface.
Normally, these commands should not be used directly. Use instead
the class interface defined in the ::ptolemy namespace.
The commands are designed to expose most of functionality of the
kernel at the Tcl level, although at this point the facilities are
still incomplete. In certain cases, the commands are designed to try
to hide blemishes in the design of the kernel, providing a more
sensible interface. All commands are defined in the ::pitcl
namespace, except the matlab
and mathematica
commands, which are
defined in both the global namespace and the ::pitcl namespace.
Because interaction with Itcl is not as rich as it might be, this implementation preserves from its predecessor the notion of a current galaxy and current universe. This seems to be the simplest approach, and is hidden from the user by the classes in the ::ptolemy namespace. For commands that operate on a block, the block can usually be a star, galaxy, universe, wormhole, or target. Names of blocks can take any of the following forms:
The first can specify a member of the current galaxy, a master star, a master galaxy, or a target (names conflicts are resolved in that order). The second can specify a star within a galaxy within the current galaxy, or a star or galaxy within a master galaxy. The third is just the obvious generalization of this. The fourth specifies a universe. The fifth specifies a block (star or galaxy) within a universe. The sixth is the obvious generalization. The seventh specifies the current galaxy, and the last specifies the current target.
Remaining to be done:
Usage: addBlock name class
Create a new instance of star, galaxy, or wormhole. The specified block name may be absolute or relative to the current galaxy, unless it is a universe, in which case it must be absolute. I.e., it must begin with a leading period. The galaxy within which the block is to be created must exist or an error is triggered. An error is also triggered if the block already exists.
Usage: addState statename type initvalue
Create a new state for a galaxy or universe. The specified state name may be absolute or relative to the current galaxy.
NOTE: Currently this is restricted to adding states to galaxies and universe. It should be generalized to add states to arbitrary blocks.
Usage: addUniverse name domain
Create a new, empty universe. The name can begin with a period (as in ".foo") or can omit the period (as in "foo"). In either case, the full name of the resulting universe has a leading period (".foo"). If a universe with the given name already exists, it is cleared. The second argument is the domain of the new universe.
Usage: aliasDown ?-deep? portname
Return the full name of the port that is aliased to the specified galaxy port. If there is none, return an empty string. If the -deep option is given, then return the bottom-level port, which is always a star port. Otherwise, just return the next level down.
Usage: aliasUp ?-deep? portname
If the -deep option is not given, return the full name of the galaxy port that is aliased to the specified port at the next level up in the hierarchy, or an empty string if there is none. If the -deep option is given, then return the top-level galaxy port, which may in fact be the same as the specified port if that port is already at the top level.
NOTE: If the specified port is a plain port within a multiport, the returned port may be a plain port within a multiport one level up in the hierarchy. This port name can be used to disconnect, but not to recreate the topology.
Usage: begin blockname
Invoke the begin method of the specified block.
The block must be a star, universe, or wormhole.
This must be called after init
.
NOTE: Ptolemy Universes don't actually have begin methods. This is an oversight. We query for the target and invoke its begin method here.
FIXME: Calling begin
without init
causes a core dump.
Usage: blocks ?-fullname? ?-deep? ?blockname?
Return a list of blocks contained by the specified block. If the -fullname option is given, the names in the returned list have the form _.universe.galaxy...galaxy.block_, giving the exact unique name of each block, with a leading period. If the -deep option is given, then recursively descend into galaxies, adding their blocks to the list, rather than listing the galaxy. Thus, all blocks returned will be stars. Note that probably makes no sense to use the -deep option without the -fullname option, since the names may not end up being unique.
If no blockname is given, then the current galaxy is used. If the argument is the name of a star (and hence contains no blocks), then return an empty string.
Usage: clear ?univname?
Delete all blocks in the specified universe, or if none is specified, the current universe. The target is also reset to the default target.
Usage: connect ?-bus buswidth? ?-note annotation? srcport dstport
Form a connection between two ports. The ports are given by dotted names that can be absolute (beginning with a period) or relative to the current galaxy. If abuswidthoption is given, then it specifies the number of parallel connections to make. If theannotationoption is given, the annotation is recorded on the connection. Such annotations are used, for example, in dataflow domains to specify the number and values of initial tokens that are put on an arc. For such domains, theannotationargument is a list giving the values of initial tokens that will be put on the arc.
Usage: connected ?-deep? portname
Return a list of ports to which the given port is connected, or an
empty list if it is not connected. The full name of each port is
returned. If the given port is the alias of a galaxy port and the
-deep option is not given, then the galaxy port name is reported as
{aliasUp
_portname_}. It is possible for a multiport to have both
an upward alias and a connection, in which case, both are returned.
If the -deep option is given, then star ports
are always returned, never galaxy ports. That is, the star port to
which the given port is ultimately connected to is returned. If the
name of a multiport is given, this method returns a list of all the
ports connected to the multiport.
NOTE: If the far side port is a multiport, then the specific port within that multiport to which we are connected is returned. This is probably not exactly the information originally used to create the connection, since the connect command accepts a multiport name, and creates ports within that multiport as needed. However, the information returned here is exactly what is needed to recreate the exact the topology, since if a multiport is given in a connect command, there is no control over which specific port is used for the connection.
Usage: cont univname ?stoptime?
Continue an execution of a universe until the specified stop time. What this time means depends on the domain. In SDF, for example, it gives the number of iterations of a complete schedule. In DE, it gives the simulated time after which no more events will be processed. If no argument is given, then the stop time is taken to be unity. As a side effect, the current galaxy is set to the universe being run.
Usage: currentGalaxy ?name?
Return the full name of current galaxy or universe if no argument is given. If a name is given and a galaxy or universe exists with that name, make that the current galaxy. If there is no such galaxy, return an error.
Usage: defGalaxy galname domain ?{galaxy-building-commands}?
Define a master galaxy. The first argument is the name of the
galaxy, i.e. the name that is registered on the knownBlocks list for
use by addBlock
. The second argument is the domain of the galaxy.
The galaxy can only be used in this domain, and the inside of the
galaxy is also in this domain; to define a wormhole (a galaxy that
is used in a domain different from its internals), use the
defWormhole
command. The third argument is a set of galaxy
building commands. If it is not given, an empty galaxy is defined.
Otherwise, the commands are executed in the ::pitcl namespace to
construct the galaxy. Any pitcl commands can be included.
Note that if errors occur during the execution
of these galaxy defining commands, then a partially constructed
galaxy will be on the knownBlocks list.
Usage: defWormhole wormname outerdomain innerdomain target ?{galaxy-building-commands}?");
Define a master wormhole. The first argument is the name of the
wormhole, i.e. the name that is registered on the knownBlocks list
for use by addBlock
. The second argument is the external domain of
the wormhole. This is the domain within which the wormhole can be
used. The third argument is the internal domain of the wormhole.
This can be the same as the outer domain, and a wormhole will still
be created. The fourth argument is the name of the target. If this is
an empty string, then the default target for the inner domain will be
used. The final (optional) argument is a set of galaxy building
commands. If it is not given, an empty wormhole is defined.
Otherwise, the commands are executed in the ::pitcl namespace to
construct the wormhole. Note that if errors occur during the
execution of these wormhole defining commands, then a partially
constructed wormhole will be on the knownBlocks list.
NOTE: In the predecessor interface, ptcl, defgalaxy was used for wormholes and galaxies. But that approach relied far too much on on the current state, and precluded incremental construction of wormholes.
Usage: galaxyPort portname aliasport
This procedure establishes an "alias" relationship between a galaxy port and a port in a block within the galaxy. The first argument is the name of the galaxy port. If no port with that name exists, it is created. The second argument is the name of a block port within the galaxy.
NOTE: This procedure replaces the alias
command in PTcl.
Also note that this procedure could be greatly simplified by
bypassing the InterpGalaxy::alias method. We use that method
only because it registers the operation on the "actionList" for
later cloning of the galaxy. If the cloning mechanism is simplified,
then this implementation can probably be simplified.
Usage: getAnnotation portname
Return the annotation created with the -note
option for a given port.
If no annotation was specified, return an empty string.
NOTE: If a multiport is passed in, this method returns an empty string, indicating no annotation. Is this what we want?
Usage: getClassName ?blockname?
Return the class name of the specified block, or if none is specified, of the current galaxy. Note that the class name of a galaxy is the name of the master galaxy from which it was originally cloned, or if the galaxy is a master (on the KnownBlocks list), then its own name. The class name of a Ptolemy star has the domain name as a prefix, as in "SDFRamp".
Usage: getData ?-geo? portname
Return the data buffered in the port, or if the -geo option is given,
the data buffered on the geodesic. The data is returned as a list of
items, where each item is a string constructed using the print
method
of the particle. If there is no data, an empty string is returned.
NOTE: Because of flaws in the design of the Ptolemy kernel, without the -geo option, only the current particle (that accessed with operator %0) is returned. Other particles in the port are ignored.
FIXME: This procedure has only been tested in the SDF domain. In particular, the -geo option is unlikely to yield anything useful in other domains.
Usage: getDescriptor ?blockname?
Return the descriptor of the specified block, or if none is specified, of the current galaxy.
Usage: getDomain ?-inside? ?blockname?
Return the domain of the specified block, or if none is specified, of the current galaxy. The domain returned by default is the one within which the block is designed to work. Thus, for a wormhole, it will not be the inside domain, but rather the outside domain. To get the inside domain of a wormhole, use the -inside option. This option is ignored if the block is not a wormhole.
Usage: getFullName ?blockname?
Return the full name of the specified block, or if none is specified, of the current galaxy. The full name begins with a period, followed by the universe name, followed by parent galaxy names separated by periods, followed by the final block name.
Usage: getParent ?blockname?
Return the full name of the parent of the specified block, or if none is specified, of the current galaxy. If the specified block is an instance of a star or galaxy, then the full name begins with a period, followed by the universe name, followed by parent galaxy names separated by periods, followed by the final block name. If the specified block is a universe, then return ".". If the specified block is a master star or galaxy, then return the empty string. If the specified block does not exist, then return an error.
Usage: getSchedule ?blockname?
Return the schedule of the specified universe, or if none is specified,
of the current universe. Note that it is necessary to invoke init
before there is a schedule. If init
has not been invoked, then
return an error. The format of the returned schedule is as follows:
<schedule> ::= { ( <entry> )+ }The notation "( <name> ) +" means one or more items of type name. The notation "<type:description>" means an item of the given type and description. The braces ("{" and "}") are all part of the format, and are included to make the string trivial to parse in Tcl.<entry> ::= { scheduler <string:scheduler_identifier> } | { galaxy <string:galaxy_or_universe_name> } | { target <string:target_name> } | { numberOfProcessors <int:numprocs> } | { numberOfStars <int:numstars> } | { numberOfStarOrClusterFirings <int:sizeofDAG> } | { makespan <int:makespan> } | { totalIdleTime <int:idletime> } | { utilization <float:utilization> } | { preamble <schedule> } | { cluster <schedule> } | { cluster <string:name> <schedule> } | { assign <string:token> <string:value> } | { fire <star> } | { fire <star> <f_info> } | { idle <int:idletime>} | { processor <string:name> <schedule> } | { repeat <int:repetitions> <schedule> } | { <string:annotation> <schedule> } | { <string:annotation> <schedule> <string:endannotation>}
<star> ::= send | receive | <string:star_name>
<f_info> ::= { ( <f_entry> )+ }
<f_entry> ::= { exec_time <int:exec_time> } | { start_row <int:start_row_index> } | { start_col <int:start_col_index> } | { end_row <int:end_row_index> } | { end_col <int:end_col_index> } | { <string:label> <string:value> }
Note that all entries are optional, and the list will inevitably grow as we add more schedulers. Some are used only by specific schedulers. For instance, the "assign" item is used by BDF to record a value that affects the schedule. Thus a tool that uses any of this information to display a schedule cannot count on any item being present. It has to fail gracefully if it does not know how to display the schedule. The last two items of type "entry" can use any string as an identifier. This makes the format flexible, so that it can support new schedulers. I believe all schedule visualization tools should fall back on a textual schedule display if they cannot represent the given information, or necessary information is missing. So for example, one way to write the gantt tool would be to search the schedule for annotations that it does not recognize. If it finds any, display the schedule textually. Otherwise, draw a gantt chart.
The <f_entry> items allow the scheduler to give additional information about the schedule. Anything is allowed here, but the specific items listed are used by parallel CG schedulers and the MDSDF scheduler.
For example,
{ { scheduler "T.C. Hu's Parallel Scheduler"} { galaxy foo} { numberOfProcessors 2} { processor 1 { { totalIdleTime 20 } { target NOW } { fire starA { exec_time 5 } } { fire starB { exec_time 5 } } }} { processor 2 { { fire starC { exec_time 25 } } { fire starD { exec_time 5 } } }} { totalIdleTime 20} { makespan 30} { utilization 66.66} }Here is a simpler example:
{ {fire starA} {fire starB} {fire starC} }
Usage: getTarget ?-inside? ?blockname?
Given a block, return the name of its target. This procedure is most useful for blocks that are universes and wormholes when the -inside option is given. In this case, it returns the name of the target that controls the invocation of the blocks inside the universe or wormhole. Without the -inside option, it returns the name of the target that controls the invocation of the specified block (its outside target). However, this name will always be a null string before the universe has been initialized.
Usage: init ?blockname?
Initialize the specified block, or if none is specified, the current galaxy. This causes the states and portholes to be initialized and, for stars, universes, and wormholes, the setup method to be run. In addition, if the block is a universe or a wormhole, then the target is initialized. In statically scheduled domains, initializing the target causes the schedule to be computed. If a halt is requested or an error occurs during the initialization, then return an error (so that no script continues assuming the block has been initialized). Note that the begin method is not invoked. That should be explicitly invoked after this initialization.
Usage: initState statename
Initialize a state. This causes the initial value to be evaluated and the current value set to the initial value.
Usage: isGalaxy blockname
Return 1 if the specified block is a galaxy. Return 0 otherwise. A wormhole is not galaxy for these purposes, since normally you cannot see inside.
Usage: isMultiPort portname
Return 1 if the specified port is a multiport. Return 0 otherwise. A multiport in Ptolemy is a port that contains any number of other ports.
Usage: isWormhole blockname
Return 1 if the specified block is a Wormhole. Return 0 otherwise. A Wormhole in Ptolemy is a star that contains a galaxy.
Usage: knownBlocks ?domain?
Return a list of the available blocks in the specified domain, or (if no domain is given) the current domain.
Usage: knownDomains
Return a list of the available domains.
Usage: knownTargets ?domain?
Return a list of targets for the specified domain. (if no domain is given) the current domain.
Usage: knownUniverses
Return a list of the names of the known universes. Each name begins with a dot, and hence is absolute.
Usage: mathematica command ?arg ...?
Manage a Mathematica session. Mathematica is a commercial program for symbolic mathematics. This command will only work if your version of the executable has been built with an interface to Mathematica. Possible commands and their arguments are given below:
terminate session: end evaluate Mathematica command: evalscript get expression in Tcl form: getname?_script_? evaluate Mathematica command: sendscript start a session: start ?_identifier_? Tcl/Mathematica status: statusThe "mathematica send" command will not return output generated by Mathematica (unless an error occurs), "mathematica eval" will return it as a single string, and "mathematica get" sends the script for evaluation and returns the value of the variable name. For example, "
Usage: matlab command ?arg ...?
Manage a Matlab session. This command will only work if your version of the executable has been built with Matlab. Possible commands and their arguments are given below:
terminate session: end evaluate Matlab script: evalscript get matrix as Tcl lists: getname?_script_? get matrix as ordered pairs: getpairsname?_script_? evaluate Matlab script: sendscript set matrix as Tcl lists: setname_rows_cols_real_ ?_imag_? start a session: start ?_identifier_? ?_start_command_? Tcl/Matlab status: status unset a matrix: unsetThe "matlab send" command will not return output from by Matlab (unless an error occurs), "matlab eval" will return output as a single string, and "matlab get" sends the script for evaluation and returns the value of the variable name. For example, "
The "matlab status" command returns 0 if the Tcl/Matlab connection is
open and Matlab is running, and non-zero otherwise. A return value of
-1 indicates that the connection is not open, whereas 1 means that
Matlab is not running.
The "matlab start" command will launch an interface to Matlab. If the
MATLAB_SERVER_HOSTNAME environment variable is set, then Matlab will
be started on that machine.
The
NOTE: The matlab command can cause Tycho to hang if it is being run
in the background. This is because the external interface provided
for matlab assumes that a terminal is connected to the program. To
unhang tycho, put it in the foreground. We have also sometimes seen
matlab hang the entire X window session. To correct this, kill the
matlab process. Bugs should be reported to the Math Works, Inc.
Usage: monitor on|off
Turn on or off the monitoring of ptcl commands. When monitoring is on,
then every time a ptcl command is called, the full text of the command
is passed to the "monitorPtcl" procedure. By default, that procedure
prints out the command using the Tcl puts procedure, but that procedure
may be overridden.
FIXME: This does not work for defGalaxy commands.
Usage: onFiring ?-before? ?-after? ?starname? command
Bind a Tcl command to the firing of a star. If the -after option
is given, then the binding triggers after the star firing (the invocation
of its
Usage: onFiringCancel handle|all
Cancel a binding created with
Usage: ports ?-inputs? ?-outputs? ?-multiports? blockname
If options are specified, they can be any combination of:
Usage: portsContained ?-deep? portname
Return a list of ports contained by the given multiport. If the
-deep option is given, then return the lowest level ports in the alias
chain, which are always star ports. Otherwise, the returned ports
may be galaxy ports. It is an error if the named port is not a multiport.
Usage: remove name
Delete the specified block.
Usage: reset ?galname?
Reconstruct the specified galaxy, or if none is specified, the current
galaxy. This deletes all contained blocks, and then
constructs new blocks of the same time and redoes all the connections.
It uses the actionList of InterpGalaxy.
FIXME: test
Usage: run univname ?stoptime?
Run a universe until the specified stop time. What this time means
depends on the domain. In SDF, for example, it gives the number of
iterations of a complete schedule. In DE, it gives the simulated time
after which no more events will be processed. If no argument is given,
then the stop time is taken to be unity. As a side effect, the current
galaxy is set to the universe being run. This procedure is equivalent
to the sequence
Usage: setState statename statevalue
Set the initial value of the specified state. For this to affect the
current value you must invoke
Usage: setTarget ?blockname? targetname
Change the target for the specified block. Currently, the block must
be a universe, although eventually it may be allowed to be a
wormhole. If no block is specified, assume the current galaxy (which
again must be a universe). The targets for the all the constituent
blocks are immediately updated (no need to initialize).
Usage: states ?blockname?
Return the list of states in the given block. If no argument is
given, return a list of the states of the current galaxy.
Usage: stateValue ?-initial? statename
Return the value of the specified state. If the option is -initial,
then return the initial value. Otherwise, return the current value.
Usage: wrapup univname
Invoke the wrapup method of the specified universe.
monitorPtcl
When monitoring is turned on, this procedure is called each time a Ptcl
procedure is invoked. The full text of the command is passed as arguments.
This method may be overridden, but the default method prints the command
using the Tcl puts procedure.
run
method, which invokes the go
method).
If the -before option is given, or if no options are given, then
the binding triggers before the firing.
If no starname is specified, then the command is bound to all star
firings. In either case, the full name of the particular star that
triggers the binding will be appended to the command before the command
invoked. For example, the command
onFiring puts
will result in the printing of the name of every star after it is fired.
The value returned by registerAction is a handle (a unique string)
that can be used to cancel the action using onFiringCancel
.
onFiring
.
The single argument is the handle returned by onFiring
or the keyword
"all", in which case the all existing bindings are canceled.
ports
Return a list of port names for the specified block.
The first two options indicate that inputs or outputs should be
listed. Specifying both of these options lists only ports that are
both an input and an output, something supported in some domains.
Specifying neither results in all ports being listed.
The -multiports option specifies that only multiports should be
listed, rather than the individual ports within the multiport.
In this case, after each multiport is a list of its contained ports.
For example, a multiport named "input" with two contained ordinary
ports will appear in the result as "input {input#1 input#2}".
init
, begin
, cont
.
initState
.


VRaptor is strongly based on Dependency Injection, since all its internal components are managed using this technique.
Tha basic concept behind Dependency Injection (DI) says you should not look for what you want to access. Instead, it should be provided for you somehow.
In Java, this is accomplished by passing components to your controller's constructor. Suppose your clients controller needs to access a clients Dao. Specify that need in your code:
@Resource
public class ClientController {
private final ClientDao dao;
public ClientController(ClientDao dao) {
this.dao = dao;
}
@Post
public void add(Client client) {
this.dao.add(client);
}
}
And annotate the ClientDao component as a VRaptor @Component
:
@Component
public class ClientDao {
}
From now on, VRaptor will provide your ClientController
with an instance of ClientDao
when needed. Remember that VRaptor will honor the scope specified by the component.
For example, if ClientDao
had specified Session scope (@SessionScoped
),
only one instance of that component would be created per session. (Note that it is
probably wrong to specify session scope for a Dao, it is only a simple example).
Sometimes we want our components to receive other libraries' components.
In that case we are unable to change the libraries's source code in order to
annotate its components with @Component
(and any other changes we may need to do).
The most common example is acquiring a Hibernate Session. We need to create a component that is responsible for providing Session instances for other components that depend on it.
VRaptor has an interface called ComponentFactory
which allows your classes to
provide components.
Classes implementing that interface define a single method. See the following example, which starts Hibernate when the component is built and uses that configuration to provide Session instances for our application:
@Component
@ApplicationScoped
public class SessionFactoryCreator implements ComponentFactory<SessionFactory> {
private SessionFactory factory;
@PostConstruct
public void create() {
factory = new AnnotationConfiguration().configure().buildSessionFactory();
}
public SessionFactory getInstance() {
return factory;
}
@PreDestroy
public void destroy() {
factory.close();
}
}
@Component
@RequestScoped
public class SessionCreator implements ComponentFactory<Session> {
private final SessionFactory factory;
private Session session;
public SessionCreator(SessionFactory factory) {
this.factory = factory;
}
@PostConstruct
public void create() {
this.session = factory.openSession();
}
public Session getInstance() {
return session;
}
@PreDestroy
public void destroy() {
this.session.close();
}
}
These implementations are already on VRaptor3. Utils chapter will show you how to use them.
Behind the scenes, VRaptor uses a Depenency Injection container. There are three supported containers on VRaptor:
Spring IoC: besides dependency injection, Spring IoC lets you to use any other Spring component along with VRaptor, without further configurations.
Google Guice: a lighter and faster container, that lets you to have a better control of your dependency wiring, the use of the new javax.inject API, and some AOP features.
Pico container: o lightweight and simple container, for those who will use no more than dependency injection.
To choose any of these containers, one have to put their jars on the classpath. The required jars can be found on lib/containers folders at vraptor zip.  Os jars estão disponíveis na pasta lib/containers do zip do VRaptor.
By default the containers will consider only classes under WEB-INF/classes folder, but you can also put annotated classes inside jars, if they include directory entries. ("Add directory entries" on eclipse, or ant without "files only" option). For enabling this you must put this parameter on web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>com.package.inside.the.jar</param-value>
</context-param>
When using Spring, you gain all its features and built-in components to use with VRaptor. In other words, all components that work with Sprint DI/IoC, also work with VRaptor. In that case, all the annotations.
To enable Spring on VRaptor, add all jars from lib/containers/spring on your app classpath.
VRaptor will use your Spring configurations, if you have it already configured in your project (Context listeners and applicationContext.xml on classpath). If VRaptor can't find your Spring configuration or you need to do more complex configurations, you can extend the Spring provider:
package com.yourapp;
public class CustomProvider extends SpringProvider {
@Override
protected void registerCustomComponents(ComponentRegistry registry) {
registry.register(AClass.class, ImplementationOfThisClass.class);
//...
}
@Override
protected ApplicationContext getParentApplicationContext(ServletContext context) {
ApplicationContext context = //configure your own application context
return context;
}
}
and to use this provider, add it to web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.provider</param-name>
<param-value>com.yourapp.CustomProvider</param-value>
</context-param>
To enable Google Guice, add all jars from lib/containers/guice to your app classpath.
When using Guice you can choose to not use VRaptor's @Component annotation, and use guice or javax.inject annotations to control the injection.
If you need more complex configurations, just create a class that extends guice provider:
public class CustomProvider extends GuiceProvider {
@Override
protected void registerCustomComponents(ComponentRegistry registry) {
//binding only to AClass
registry.register(AClass.class, ImplementationOfThisClass.class);
//binding on OtherClass and all its superclasses and interfaces
registry.deepRegister(OtherClass.class);
}
@Override
protected Module customModule() {
//you need to install super.customModule() if you
//want to enable the registerCustomComponents method
//and the classpath scanning
final Module module = super.customModule();
return new AbstractModule() {
public void configure() {
module.configure(binder());
// custom guice bindings
}
};
}
}
and to use this provider, add to the web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.provider</param-name>
<param-value>com.yourapp.CustomProvider</param-value>
</context-param>
To enable Google Guice, add all jars from lib/containers/picocontainer to your app classpath.


This field goal takes place around Building 14, Building 66, and the Sailing Pavilion. By the end of this field goal, you and your teammates will put up hacks, turning Building 14 into a delicious donut, and Building 66 into a boat (which, indeed, is a common hack for Building 66).
The initial Football player who tells you about the field goal suggests you find their two groups of friends in Building 14 and the Sailing Pavilion. They also tell you that you'll be able to identify their friends with the codeword "Hi Jill!" This is a nod to Jack Florey, a legend behind hacks at MIT.
For both groups, you'll need to get parts from the hack, which can be found in a nearby vending machine, and bring all the parts to a special room simultaneously to assemble the hack. Each person can only hold one item, so you'll need multiple teammates (or multiple browser windows) to finish this field goal.
In order to get a different item, you can interact with the vending machine again, and in order to throw out items, you can use a trash can located near the vending machine. (Note, these trash cans cannot be stolen by troublesome geese.) You'll automatically throw out your item if you try to go outdoors since it's important to be discreet while hacking.
Building 66 is a triangular building north of East Campus.
To get the parts for the boat, you'll need to visit the Sailing Pavilion. There's someone under the dock that'll tell you about the vending machine upstairs.
She also tells you that you'll need to bring the parts down the tunnel, where you'll find a hatch and another Jill waiting for you.
There are three different boat parts you'll need to bring to complete the field goal.
When you finish this part of the field goal, you'll get a teleporter to bring you to go see the boat hack directly.
The other group is located in Building 14.
You'll be able to get jelly beans and paint from the vending machine in Building 14. These will be used for frosting and sprinkles in the Building 14 donut hack.
There are 8 different donut parts: pink and white buckets of paint, and red, blue, green, white, pink, and orange jelly beans. Once again, each person can only hold one at a time. So you and your teammates will need to gather and bring these parts to the group located in a Building 14 room to complete this part of the field goal.
When you finish this part of the field goal, you'll get a teleporter to bring you to go see the boat hack directly.
Once you've helped both groups finish the redecorations, you complete the field goal and are rewarded with the answer MASS MATRIX.


arcgis.gis.server module¶
A collection of classes for administering an ArcGIS Enterprise’s server.
Server¶
-
class
arcgis.gis.server.
Server
(url=None, tokenurl=None, username=None, password=None, verify_cert=False, gis=None, **kwargs)¶ Bases:
object
An ArcGIS Enterprise server used for hosting services
Parameters: :param url: site url of the server :param tokenurl: optional URL for pointing to the server’s token url :param username: name of login user :param password: password of login user :param verify_cert: boolean value, False means any invalid certificates will be ignored. True means only valid certificates will be accepted. :param gis: if a server is federated, a GIS object should be given inorder to ensure that the Portal Security is used over server token.
-
datastores
¶ This resource provides information about the data holdings of the _server. Data items are used by ArcGIS for Desktop and other clients to validate data paths referenced by GIS services. You can register new data items with the _server by using the Register Data Item operation. Use the Find Data Items operation to search through the hierarchy of data items. A relational data store type represents a database platform that has been registered for use on a portal’s hosting _server by the ArcGIS Server administrator. Each relational data store type describes the properties ArcGIS Server requires in order to connect to an instance of a database for a particular platform. At least one registered relational data store type is required before client applications such as Insights for ArcGIS can create Relational Database Connection portal items. The Compute Ref Count operation counts and lists all references to a specific data item. This operation helps you determine if a particular data item can be safely deleted or refreshed.
-
logs
¶ This allows users to access the ArcGIS Server’s logs and lets administrators query and find errors and/or problems related to the _server or a service.
Logs are the records written by the various components of ArcGIS Server. You can query the logs and change various log settings. Note ArcGIS Server Only
-
machines
¶ This resource represents a collection of all the _server machines that have been registered with the site. It other words, it represents the total computing power of your site. A site will continue to run as long as there is one _server machine online. For a _server machine to start hosting GIS services, it must be grouped (or clustered). When you create a new site, a cluster called ‘default’ is created for you. The list of _server machines in your site can be dynamic. You can register additional _server machines when you need to increase the computing power of your site or unregister them if you no longer need them.
-
services
¶ Provides administrator access to the services on ArcGIS Server as a ServerManager Object.
-
site
¶ A site is a collection of server resources. This collection includes server machines that are installed with ArcGIS Server, including GIS services, data and so on. The site resource also lists the current version of the software. When you install ArcGIS Server on a server machine for the first time, you must create a new site. Subsequently, newer server machines can join your site and increase its computing power. Once a site is no longer required, you can delete the site, which will cause all of the resources to be cleaned up.
-
system
¶ provides access to common system configuration settings
-
usage
¶ This resource is a collection of all the usage reports created within your site. The Create Usage Report operation lets you define a new usage report.
-
users
¶ returns operations to work with users
-
Service¶
-
class
arcgis.gis.server.
Service
(url, server, **kwargs)¶ Bases:
object
Represents a GIS administrative service
Parameter: :param url: admin url of the service :param server: server object :param service: service object :param svcmgr: service manager object
-
delete
()¶ Deletes the service and return True if successful, False otherwise
-
edit
(service)¶ To edit a service, you need to submit the complete JSON representation of the service, which includes the updates to the service properties. Editing a service causes the service to be restarted with updated properties.
-
properties
¶ The properties of the Service
-
rename
(new_name)¶ Renames this service to the new name
-
start
()¶ Starts the service
-
statistics
¶ Returns the stats for the service
-
status
¶ Returns the status of the service
-
stop
()¶ Stops the service
-
Machine¶
-
class
arcgis.gis.server.
Machine
(machine)¶ Bases:
object
A server machine represents a machine on which ArcGIS Server software has been installed and licensed. A site is made up one or more of such machines that work together to host GIS services and data and provide administrative capabilities for the site. Each server machine is capable of performing all these tasks and hence a site can be thought of as a distributed peer-to-peer network of such machines. A server machine communicates with its peers over a range of TCP and UDP ports that can be configured using the edit operation. For a server machine to host GIS services, it needs to be added to a cluster. Starting and stopping the server machine enables and disables, respectively, its ability to host GIS services. The administrative capabilities of the server machine are available through the ArcGIS Server Administrator API that can be accessed over HTTP(S). For a server machine to participate in a site, it must be registered with the site. A machine can participate in only one site at a time. To remove a machine permanently from the site, you can use the unregister operation.
Parameter: :param machine: Machine object
-
export_certificate
(certificate)¶ A certificate represents a key pair that has been digitally signed and acknowledged by a Certifying Authority (CA). It is the most fundamental component in enabling SSL on your server. The Generate Certificate operation creates a new self-signed certificate and adds it to the keystore. In order for browsers and other HTTP client applications to trust the SSL connection on the server, this certificate must be digitally signed by a CA and then imported into the keystore. Even though a self-signed certificate can be used to enable SSL, it is recommended that you use a self-signed certificates only on staging or development servers.
- Parameters:
certificate: name of the certificate to grab information for
-
generate_CSR
(certificate)¶ This operation generates a certificate signing request (CSR) for a self-signed certificate. A CSR is required by a CA to create a digitally signed version of your certificate. Parameters:
certificate: name of the certificate to grab information for
-
import_CA_signed_certificate
(certificate, ca_signed_certificate)¶ - Parameters:
certificate: name of the certificate to grab information for ca_signed_certificate: The multi-part POST parameter containing the signed certificate file.
-
import_existing_server_certificate
(alias, cert_password, cert_file)¶ This operation imports an existing server certificate, stored in the PKCS #12 format, into the keystore. If the certificate is a CA signed certificate, you must first import the CA Root or Intermediate certificate using the importRootCertificate operation.
- Parameters:
alias: A unique name for the certificate that easily identifies it. cert_password: password to unlock the file containing the certificate cert_file: multi-part POST parameter containing the certificate file
-
import_root_certificate
(alias, root_CA_certificate)¶ This operation imports a certificate authority (CA)’s root and intermediate certificates into the keystore. To create a production quality CA-signed certificate, you need to add the CA’s certificates into the keystore that enables the SSL mechanism to trust the CA (and the certificates it has signed). While most of the popular CA’s certificates are already available in the keystore, you can use this operation if you have a custom CA or specific intermediate certificates.
- Parameters:
alias: name of teh certificate - :root_CA_certificate:multi-part POST parameter containing the
- certificate file.
-
properties
¶ lists the machine’s properties
-
ssl_certificate
(certificate)¶ A certificate represents a key pair that has been digitally signed and acknowledged by a Certifying Authority (CA). It is the most fundamental component in enabling SSL on your server. The Generate Certificate operation creates a new self-signed certificate and adds it to the keystore. In order for browsers and other HTTP client applications to trust the SSL connection on the server, this certificate must be digitally signed by a CA and then imported into the keystore. Even though a self-signed certificate can be used to enable SSL, it is recommended that you use a self-signed certificates only on staging or development servers.
- Parameters:
certificate: name of the certificate to grab information for
-
ssl_certificates
¶ This resource lists all the certificates (self-signed and CA-signed) created for the server machine. The server securely stores these certificates inside a key store within the configuration store. Before you enable SSL on your server, you need to generate certificates and get them signed by a trusted certificate authority (CA). For your convenience, the server is capable of generating self-signed certificates that can be used during development or staging. However, it is critical that you get CA-signed certificates when standing up a production server. In order to get a certificate signed by a CA, you need to generate a CSR (certificate signing request) and then submit it to your CA. The CA will sign your certificate request which can then be imported into the server by using the import CA signed certificate operation.
-
start
()¶ Starts the server machine
-
status
¶ returns the state
-
stop
()¶ Stops the server machine
-
unregister
()¶ This operation causes the server machine to be deleted from the Site. The server machine will no longer participate in the site or run any of the GIS services. All resources that were acquired by the server machine (memory, files, and so forth) will be released. Typically, you should only invoke this operation if the machine is going to be shut down for extended periods of time or if it is being upgraded. Once a machine has been unregistered, you can create a new site or join an existing site.
-
Report¶
-
class
arcgis.gis.server.
Report
(report)¶ Bases:
object
A Single Usage Report returned by ArcGIS Server (This class should not be created by a user) Parameter: :param report: internal Report object
-
delete
()¶ deletes the current report
-
edit
(report)¶ Edits the usage report. To edit a usage report, you need to submit the complete JSON representation of the usage report which includes updates to the usage report properties. The name of the report cannot be changed when editing the usage report.
Values are changed in the class, to edit a property like metrics, pass in a new value. Changed values to not take until the edit() is called.
-
properties
¶ returns the Report Properties
-
query
(query_filter=None)¶ Retrieves server usage data for the report. This operation aggregates and filters server usage statistics for the entire ArcGIS Server site. The report data is aggregated in a time slice, which is obtained by dividing up the time duration by the default (or specified) aggregationInterval parameter in the report. Each time slice is represented by a timestamp, which represents the ending period of that time slice. In the JSON response, the queried data is returned for each metric- resource URI combination in a query. In the report-data section, the queried data is represented as an array of numerical values. A response of null indicates that data is not available or requests were not logged for that metric in the corresponding time-slice.
- Parameters:
- query_filter - The report data can be filtered by the machine
where the data is generated. The filter accepts a comma separated list of machine names; * represents all machines.
- Examples:
- # filters for the specified machines {“machines”: [“WIN-85VQ4T2LR5N”, “WIN-239486728937”]} # no filtering; all machines are accepted {“machines”: “*”}
-
Datastore¶
-
class
arcgis.gis.server.
Datastore
(datastore)¶ Bases:
object
Represents a Single Datastore in DataStoreManager
Parameter: :param datastore: reprsents a single instance of datastore
-
datasets
¶ Returns the datasets in the data store (currently implemented for big data file shares.)
-
delete
()¶ Unregisters this data item from the data store
-
hints
¶ This returns the hints resource for a big data file share. Hints are advanced parameters to control the generation of Manifest.
-
manifest
¶ The manifest resource for bigdata fileshares,
-
properties
¶ returns the machine’s properties
-
ref_count
¶ The total number of references to this data item that exist on the server. You can use this property to determine if this data item can be safely deleted (or taken down for maintenance).
-
update
(item)¶ Edits this data item to update its connection information.
- Input
- item - the dict representation of the updated item
- Output:
- True if successful
-
validate
()¶ Validates that this data item’s path (for file shares) or connection string (for databases) is accessible to every server node in the site
- Output:
- True if successful
-
User¶
-
class
arcgis.gis.server.
User
(security, user_dict)¶ Bases:
dict
Individual User Account
-
add_role
(role_name)¶ You must use this operation to assign roles to a user account when working with an user and role store that supports reads and writes. By assigning a role to a user, the user account automatically inherits all the permissions that have been assigned to the role.
- Parameter:
role: role name to assign to current user
-
delete
()¶ deletes the current user account
-
update
(password=None, full_name=None, description=None, email=None)¶ Updates a user account in the user store
- Parameters:
- username - the name of the user. The name must be unique in
- the user store.
password - the password for this user. fullname - an optional full name for the user. description - an optional field to add comments or description
for the user account.email - an optional email for the user account.
-
Role¶
-
class
arcgis.gis.server.
Role
(security, roledict)¶ Bases:
dict
represents a single role on server
-
delete
()¶ deletes the current role
-
set_privileges
(privilage)¶ Administrative access to ArcGIS Server is modeled as three broad tiers of privileges:
- ADMINISTER-A role that possesses this privilege has unrestricted
- administrative access to ArcGIS Server.
- PUBLISH-A role with PUBLISH privilege can only publish GIS
- services to ArcGIS Server.
- ACCESS-No administrative access. A role with this privilege can
- only be granted permission to access one or more GIS services.
By assigning these privileges to one or more roles in the role store, ArcGIS Server’s security model supports role-based access control to its administrative functionality. These privilege assignments are stored independent of ArcGIS Server’s role store. As a result, you don’t need to update your enterprise identity stores (like Active Directory).
-
update
(description=None)¶ Updates a role in the role store with new information. This operation is available only when the role store is a read-write store such as the default ArcGIS Server store.
- Parameters:
description: An optional field to add comments or a description for the role - Output:
- status dictionary
-
ServerManager¶
-
class
arcgis.gis.server.
ServerManager
(gis)¶ Bases:
object
ServerManager is a set of tools to work with your WebGIS that allows administrators to federate, unfederate and manage ArcGIS Servers.
- Parameters:
param gis: on-premise GIS object
-
get
(role=None, function=None)¶ returns a server(s) by role or function.
Parameters: :param role: Whether the server is a hosting server for the portal, a federated server, or a server with restricted access to publishing. The allowed values are FEDERATED_SERVER, FEDERATED_SERVER_WITH_RESTRICTED_PUBLISHING, or HOSTING_SERVER. :param function: Server function associates a specific function with the server. It takes in a comma separated list of values. The allowed values are GeoAnalytics,RasterAnalytics, and ImageHosting.
-
list
()¶ gets all servers in a GIS
-
update
(server, role, function=None)¶ This operation allows you to set an ArcGIS Server federated with Portal for ArcGIS as the hosting server or to enforce fine-grained access control to a federated server. You can also remove hosting server status from an ArcGIS Server. You can also remove hosting server status from an ArcGIS Server. To set a hosting server, an enterprise geodatabase must be registered as a managed database with the ArcGIS Server.
- Parameters:
param server: arcgis.gis.Server object
param role: Whether the server is a hosting server for the portal, a federated server, or a server with restricted access to publishing. The allowed values are:
FEDERATED_SERVER, FEDERATED_SERVER_WITH_RESTRICTED_PUBLISHING, or HOSTING_SERVER.
param function: Function associates a specific function with the
server. It takes in a comma separated list of values. The allowed values are GeoAnalytics,RasterAnalytics, and ImageHosting. Values can be comma separated but it is not recommend that a single server have all the server functions
-
validate
()¶ This operation returns information on the status of ArcGIS Servers registered with Portal for ArcGIS.
Output: Boolean. If false, there is an issue with 1 or more of the Federated Servers. True means all servers are functioning as expected.
ServiceManager¶
-
class
arcgis.gis.server.
ServiceManager
(server)¶ Bases:
object
Helper class for managing services. This class is not created by users directly. An instance of this class, called ‘services’, is available as a property of the Server object. Users call methods on this ‘services’ object to managing services.
-
create_folder
(folder, description='')¶ Creates a unique folder Parameters:
:param folder_name - name of folder :param description - describes the folder- Output:
- result as dictionary
-
create_service
(service)¶ Creates a new GIS service in the folder. A service is created by submitting a JSON representation of the service to this operation.
The JSON representation of a service contains the following four sections:
- Service Description Properties-Common properties that are shared
by all service types. Typically, they identify a specific service.- Service Framework Properties-Properties targeted towards the
framework that hosts the GIS service. They define the life cycle and load balancing of the service.- Service Type Properties -Properties targeted towards the core
service type as seen by the server administrator. Since these properties are associated with a server object, they vary across the service types. The Service Types section in the Help describes the supported properties for each service.- Extension Properties-Represent the extensions that are enabled
on the service. The Extension Types section in the Help describes the supported out-of-the-box extensions for each service type.Output: dictionary status message
-
delete_folder
(folder)¶ Deletes a folder Parameters:
:param folder - name of folder to remove- Output:
- boolean
-
exists
(folder_name, name=None, service_type=None)¶ This operation allows you to check whether a folder or a service exists. To test if a folder exists, supply only a folder_name. To test if a service exists in a root folder, supply both serviceName and service_type with folder_name=None. To test if a service exists in a folder, supply all three parameters.
Parameters: :param folder_name - a folder name :param name - a service name :param service_type - a service type. Allowed values: GeometryServer | ImageServer | MapServer | GeocodeServer | GeoDataServer | GPServer | GlobeServer | SearchServer
-
folders
¶ returns a list of all folders
-
list
(folder='/', refresh=False)¶ returns a list of services in the specified folder
Parameters: :param folder: name of the folder to list services from :param refresh: Bool, default is False. If True, the list of services will be requested to the server, else the list will be returned from cache.
-
publish_sd
(sd_file_path, folder=None)¶ Publishes a service definition file to the server :param sd_file_path: service defition file :param folder: optional folder name :return: True if published, False otherwise
-
MachineManager¶
-
class
arcgis.gis.server.
MachineManager
(server, **kwargs)¶ Bases:
object
This resource represents a collection of all the server machines that have been registered with the site. It other words, it represents the total computing power of your site. A site will continue to run as long as there is one server machine online. For a server machine to start hosting GIS services, it must be grouped (or clustered). When you create a new site, a cluster called ‘default’ is created for you. The list of server machines in your site can be dynamic. You can register additional server machines when you need to increase the computing power of your site or unregister them if you no longer need them.
Parameters: :param server: server administration object
-
get
(name)¶ gets a single instance of a machine
Parameters: :param name: name of the machine
-
list
()¶ returns the list of machines in the GIS
-
properties
¶ returns the machine’s properties
-
register
(name, admin_url)¶ For a server machine to participate in a site, it needs to be registered with the site. The server machine must have ArcGIS Server software installed and authorized. Registering machines this way is a “pull” approach to growing the site and is a convenient way when a large number of machines need to be added to a site. In contrast, a server machine can choose to join a site. Parameters:
param name: - name of the server machine
param admin_url: - URL wher ethe Administrator API is running on the
server machine. Example: http://<machineName>:6080/arcgis/admin
- Output:
- JSON message as dictionary
-
rename
(name, new_name)¶ You must use this operation if one of the registered machines has undergone a name change. This operation updates any references to the former machine configuration. By default, when the server is restarted, it is capable of identifying a name change and repairing itself and all its references. This operation is a manual call to handle the machine name change. Parameters:
param name: - The former name of the server machine that is
registered with the site.
param new_name: - The new name of the server machine.
- Output:
- JSON messages as dictionary
-
LogManager¶
-
class
arcgis.gis.server.
LogManager
(server)¶ Bases:
object
Log Mangement of a server
This resource is accessed through by administrators to check on error messages.
- Parameters:
param server: server object
-
clean
()¶ Deletes all the log files on all server machines in the site.
-
count_error_reports
(machine='*')¶ This operation counts the number of error reports (crash reports) that have been generated on each machine. Parameters:
param machine: - name of the machine in the cluster. * means all
machines. This is default
- Output:
- dictionary with report count and machine name
-
edit
(level='WARNING', log_dir=None, max_age=90, max_report_count=10)¶ The log settings are for the entire site. Parameters:
param level: - Can be one of [OFF, SEVERE, WARNING, INFO, FINE,
VERBOSE, DEBUG].
param log_dir: - File path to the root of the log directory
param max_age: - number of days that a server should save a log
file.
param ax_report_count: - maximum number of error report files
per machine
-
properties
¶ returns the properties for the Logs
-
query
(start_time=None, end_time=None, since_server_start=False, level='WARNING', services='*', machines='*', server='*', codes=None, process_IDs=None, export=False, export_type='CSV', out_path=None)¶ The query operation on the logs resource provides a way to aggregate, filter, and page through logs across the entire site. Parameters:
-
settings
¶ returns the current log settings
ReportManager¶
-
class
arcgis.gis.server.
ReportManager
(server)¶ Bases:
object
Manages and modifies the usage reports for ArcGIS Server
Parameter: :param server: Server object
-
create
(reportname, queries, metadata=None, since='LAST_DAY', from_value=None, to_value=None, aggregation_interval=None)¶ Creates a new usage report. A usage report is created by submitting a JSON representation of the usage report to this operation.
- Parameters:
reportname - the unique name of the report since - the time duration of the report. The supported values
are: LAST_DAY, LAST_WEEK, LAST_MONTH, LAST_YEAR, CUSTOM LAST_DAY represents a time range spanning the previous 24
hours.- LAST_WEEK represents a time range spanning the previous 7
- days.
- LAST_MONTH represents a time range spanning the previous 30
- days.
- LAST_YEAR represents a time range spanning the previous 365
- days.
- CUSTOM represents a time range that is specified using the
- from and to parameters.
- from_value - optional value - The timestamp (milliseconds since
- UNIX epoch, namely January 1, 1970, 00:00:00 GMT) for the beginning period of the report. Only valid when since is CUSTOM
- to_value - optional value - The timestamp (milliseconds since
- UNIX epoch, namely January 1, 1970, 00:00:00 GMT) for the ending period of the report.Only valid when since is CUSTOM.
- aggregation_interval - Optional. Aggregation interval in minutes.
Server metrics are aggregated and returned for time slices aggregated using the specified aggregation interval. The time range for the report, specified using the since parameter (and from and to when since is CUSTOM) is split into multiple slices, each covering an aggregation interval. Server metrics are then aggregated for each time slice and returned as data points in the report data. When the aggregation_interval is not specified, the following defaults are used:
LAST_DAY: 30 minutes LAST_WEEK: 4 hours LAST_MONTH: 24 hours LAST_YEAR: 1 week CUSTOM: 30 minutes up to 1 day, 4 hours up to 1 week, 1 day up to 30 days, and 1 week for longer periods.If the interval specified in Usage Reports Settings is more than the aggregationInterval, the interval is used instead.
- queries - A list of queries for which to generate the report.
You need to specify the list as an array of JSON objects representing the queries. Each query specifies the list of metrics to be queries for a given set of resourceURIs. The queries parameter has the following sub-parameters:
resourceURIs - Comma separated list of resource URIs for which to report metrics. Specifies services or folders for which to gather metrics.
- The resourceURI is formatted as below:
services/ - Entire Site services/Folder/ - Folder within a Site. Reports
metrics aggregated across all services within that Folder and Sub-Folders.- services/Folder/ServiceName.ServiceType - Service in
- a specified folder, for example: services/Map_bv_999.MapServer.
- services/ServiceName.ServiceType - Service in the
- root folder, for example: Map_bv_999.MapServer.
- metrics - Comma separated list of metrics to be reported.
- Supported metrics are:
RequestCount - the number of requests received RequestsFailed - the number of requests that failed RequestsTimedOut - the number of requests that timed out RequestMaxResponseTime - the maximum response time RequestAvgResponseTime - the average response time ServiceActiveInstances - the maximum number of active
(running) service instances sampled at 1 minute intervals, for a specified service
- metadata - Can be any JSON Object. Typically used for storing
- presentation tier data for the usage report, such as report title, colors, line-styles, etc. Also used to denote visibility in ArcGIS Server Manager for reports created with the Administrator Directory. To make any report created in the Administrator Directory visible to Manager, include “managerReport”:true in the metadata JSON object. When this value is not set (default), reports are not visible in Manager. This behavior can be extended to any client that wants to interact with the Administrator Directory. Any user-created value will need to be processed by the client.
Example: >>> queryObj = [{
“resourceURIs”: [“services/Map_bv_999.MapServer”], “metrics”: [“RequestCount”]}] >>> obj.createReport(
reportname=”SampleReport”, queries=queryObj, metadata=”This could be any String or JSON Object.”, since=”LAST_DAY”)
-
edit
(interval, enabled=True, max_history=0)¶ The usage reports settings are applied to the entire site. A POST request updates the usage reports settings.
- Parameters:
- interval - Defines the duration (in minutes) for which
- the usage statistics are aggregated or sampled, in-memory, before being written out to the statistics database.
- enabled - default True - Can be true or false. When usage
- reports are enabled, service usage statistics are collected and persisted to a statistics database. When usage reports are disabled, the statistics are not collected.
- max_history - default 0 - Represents the number of days after
- which usage statistics are deleted after the statistics database. If the max_history parameter is set to 0, the statistics are persisted forever.
-
list
()¶ returns a list of reports on the server
-
properties
¶ returns the report manager’s properties
-
quick_report
(since='LAST_WEEK', queries='services/', metrics='RequestsFailed')¶ The operation quick_report generates an on the fly usage report for a service, services, or folder.
Parameters: - since - the time duration of the report. The supported values
are: LAST_DAY, LAST_WEEK, LAST_MONTH, LAST_YEAR, CUSTOM LAST_DAY represents a time range spanning the previous 24
hours.
- LAST_WEEK represents a time range spanning the previous 7
days.
- LAST_MONTH represents a time range spanning the previous 30
days.
- LAST_YEAR represents a time range spanning the previous 365
days.
- CUSTOM represents a time range that is specified using the
from and to parameters.
- queries - A list of queries for which to generate the report.
You need to specify the list as an array of JSON objects representing the queries. Each query specifies the list of metrics to be queries for a given set of resourceURIs. The queries parameter has the following sub-parameters:
resourceURIs - Comma separated list of resource URIs for which to report metrics. Specifies services or folders for which to gather metrics.
- The resourceURI is formatted as below:
services/ - Entire Site services/Folder/ - Folder within a Site. Reports
metrics aggregated across all services within that Folder and Sub-Folders.
- services/Folder/ServiceName.ServiceType - Service in
a specified folder, for example: services/Map_bv_999.MapServer.
- services/ServiceName.ServiceType - Service in the
root folder, for example: Map_bv_999.MapServer.
- metrics - Comma separated list of metrics to be reported.
- Supported metrics are:
RequestCount - the number of requests received RequestsFailed - the number of requests that failed RequestsTimedOut - the number of requests that timed out RequestMaxResponseTime - the maximum response time RequestAvgResponseTime - the average response time ServiceActiveInstances - the maximum number of active (running) service instances sampled at 1 minute intervals, for a specified service
Output: Python dictionary of data on a successful query.
-
settings
¶ The usage reports settings are applied to the entire site. A GET request returns the current usage reports settings. When usage reports are enabled, service usage statistics are collected and persisted to a statistics database. When usage reports are disabled, the statistics are not collected. The interval parameter defines the duration (in minutes) during which the usage statistics are sampled or aggregated (in-memory) before being written out to the statistics database. Database entries are deleted after the interval specified in the max_history parameter ( in days), unless the max_history parameter is 0, for which the statistics are persisted forever.
-
DataStoreManager¶
-
class
arcgis.gis.server.
DataStoreManager
(server)¶ Bases:
object
This resource provides information about the data holdings of the server. Data items are used by ArcGIS for Desktop and other clients to validate data paths referenced by GIS services.
You can register new data items with the server by using the Register Data Item operation. Use the Find Data Items operation to search through the hierarchy of data items.
A relational data store type represents a database platform that has been registered for use on a portal’s hosting server by the ArcGIS Server administrator. Each relational data store type describes the properties ArcGIS Server requires in order to connect to an instance of a database for a particular platform. At least one registered relational data store type is required before client applications such as Insights for ArcGIS can create Relational Database Connection portal items.
The Compute Ref Count operation counts and lists all references to a specific data item. This operation helps you determine if a particular data item can be safely deleted or refreshed.
Parameters: :param server: Server object
-
add
(name, item)¶ Registers a new data item with the data store. Input
item - The disct representing the data item. See http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r3000001s9000000- Output:
- True if the data item is registered successfully, False otherwise
-
add_bigdata
(name, server_path=None)¶ Registers a bigdata fileshare with the data store. Input
name - unique bigdata fileshare name on the server server_path - the path to the folder from the server- Output:
- the data item if registered successfully, None otherwise
-
add_database
(name, conn_str, client_conn_str=None, conn_type='shared')¶ Registers a database with the data store. Input
name - unique database name on the server conn_str - the path to the folder from the server (and client, if shared or serverOnly database) client_conn_str: connection string for client to connect to replicated enterprise database> conn_type - “<shared|replicated|serverOnly>”- Output:
- the data item is registered successfully, None otherwise
-
add_folder
(name, server_path, client_path=None)¶ Registers a folder with the data store. Input
name - unique fileshare name on the server server_path - the path to the folder from the server (and client, if shared path) client_path - if folder is replicated, the path to the folder from the client if folder is shared, don’t set this parameter- Output:
- the data item is registered successfully, None otherwise
-
config
¶ The data store configuration properties affect the behavior of the data holdings of the server. The properties include: blockDataCopy - When this property is false, or not set at all, copying data to the site when publishing services from a client application is allowed. This is the default behavior. When this property is true, the client application is not allowed to copy data to the site when publishing. Rather, the publisher is required to register data items through which the service being published can reference data. Values: true | false
-
data_items
¶ This resource lists data items that are the root of all other data items in the data store.
-
get
(path)¶ Returns the data item object at the given path
Parameters: :param path: required string, the data item path Output: None if the data item is not found at that path and the data item object if its found
-
get_relational_datastore_type
(type_id)¶ This resource lists the properties of a registered relational data store type. The properties returned are those that client applications must provide when creating a Relational Database Connection portal item.
- Parameters:
type_id: datastore type id
-
get_total_refcount
(path)¶ Computes the total number of references to a given data item that exist on the server. You can use this operation to determine if a data resource can be safely deleted (or taken down for maintenance). Parameters:
path - The complete hierarchical path to the item- Output:
- JSON message as dictionary
-
list
()¶ returns a list of datastore objects
-
make_datastore_machine_primary
(item_name, machine_name)¶ Promotes a standby machine to the primary Data Store machine. The existing primary machine is downgraded to a standby machine.
- Parameters:
item_name: name of the data store item machine_name: name of the machine to promote to primary
-
make_primary
(datastore_name, machine_name)¶ Promotes a standby machine to the primary Data Store machine. The existing primary machine is downgraded to a standby machine.
-
properties
¶ returns the machine’s properties
-
relational_datastore_types
¶ This resource lists the relational data store types that have been registered with the server. Each registered relational data store type has both an id and a name property, as well as an array of userDefinedProperties, which indicates the properties client applications must provide when creating a Relational Database Connection portal item. Only administrators can register and unregister a relational data store type. The following database platforms are supported: SAP HANA, Microsoft SQL Server and Teradata.
-
remove_datastore_machine
(item_name, machine_name)¶ Removes a standby machine from the Data Store. This operation is not supported on the primary Data Store machine.
- Parameters:
- item_name - name of the data store item machine_name - name of the machine to remove
-
search
(parent_path=None, ancestor_path=None, types=None, id=None)¶ You can use this operation to search through the various data items registered in the server’s data store. Parameters:
parent_path - The path of the parent under which to find items ancestor_path - The path of the ancestor under which to find
items.types - A filter for the type of the items id - A filter to search by the ID of the item
- Output:
- dictionary
-
start
(item_name, machine_name)¶ Starts the database instance running on the Data Store machine.
- Parameters:
- item_name - name of the item to start machine_name - name of the machine to start on
-
stop
(item_name, machine_name)¶ Stop the database instance running on the Data Store machine.
- Parameters:
- item_name - name of the item to stop machine_name - name of the machine to stop on
-
validate
()¶ validates all the items in the datastore
-
validate_egdb
(data_store_name, name)¶ Checks the status of ArcGIS Data Store and provides a health check response.
- Parameters:
- data_store_namee - name of the datastore name - name of the machine
-
UserManager¶
-
class
arcgis.gis.server.
UserManager
(server)¶ Bases:
object
This resource represents all users available in the user store that can administer ArcGIS Server and access the GIS services hosted on the server. In short, it represents the complete user space. As the user space could be potentially large, there isn’t any listing of users, but you can use Get Users or Search operations to access their account information. ArcGIS Server is capable of connecting to your enterprise identity stores such as Active Directory or other directory services exposed through the LDAP protocol. Such identity stores are treated as read only, and ArcGIS Server does not attempt to update them. As a result, operations that need to update the identity store (such as adding users, removing users, updating users, assigning roles and removing assigned roles) are not supported when identity stores are read only. On the other hand, you could configure your ArcGIS Server to use the default identity store (shipped with the server) which is treated as a read-write store. The total numbers of users are returned in the response.
- Note:
- Typically, this resource must be accessed over an HTTPS connection.
-
create
(username, password, firstname, lastname, email=None, description=None)¶ - Add a user account to the user store
- Parameters:
- username - The name of the user. The name must be unique in
- the user store.
password - The password for this user fullname - an optional full name for the user description - an option field to add comments or description
for the user accountemail - an optional email for the user account
- Output:
- User Object
-
get
(username)¶ - finds a users
- Parameters:
username: name of the user to find - Ouput:
- User object
-
me
¶ Gets the user object as the current logged in user. If the username cannot be found, for example, the site administrator account, then just the username is returned.
-
roles
¶ Helper object to manage custom roles for users
-
search
(username, max_results=25)¶ You can use this operation to search a specific user or a group of users from the user store. The size of the search result can be controlled with the max_results parameter.
- Parameters:
username: user or users to find max_results: integer value of the maximum number of users to return
- Output:
- list of User objects
RoleManager¶
-
class
arcgis.gis.server.
RoleManager
(security)¶ Bases:
object
This resource represents all roles available in the role store. The ArcGIS Server security model supports a role-based access control in which each role can be assigned certain permissions (privileges) to access one or more resources. Users are assigned to these roles. The server then authorizes each requesting user based on all the roles assigned to the user. As the role space could be potentially large, you can use the paged Get Roles operation to iterate through the list of roles, or you can use the Search Roles operation to search for a specific role. ArcGIS Server is capable of connecting to your enterprise identity stores such as Active Directory or other directory services exposed via the LDAP protocol. Such identity stores are treated as read-only stores and ArcGIS Server does not attempt to update them. As a result, operations that need to update the role store (such as adding roles, removing roles, updating roles) are not supported when the role store is read-only. On the other hand, you can configure your ArcGIS Server to use the default role store shipped with the server, which is treated as a read-write store.
-
all
(start_index=0, max_roles=255)¶ Returns list of all roles in the Server :param max_roles: the maximum number of roles to be returned :return: list of all roles in the server
-
create
(name, description)¶ Creates and returns a custom role with the specified parameters
- Parameters:
name: name of the role (must be unique) description: optional descriptive field as string - Output:
- JSON dictionary
-
get_role
(role_id, max_roles=10)¶ Returns the role with the specified role id. Returns list of all roles in the Server if a role_id is not specified :role_id: the role id of the role to get. Leave None to get all roles :max_roles: the total number of roles to limit search to :return: list of roles
-
SystemManager¶
-
class
arcgis.gis.server.
SystemManager
(server)¶ Bases:
object
The System resource is a collection of miscellaneous server-wide resources such as server properties, server directories, the configuration store, Web Adaptors, and licenses.
-
clear_cache
()¶ This resource currently supports a single operation to clear the REST cache.
-
configuration_store
¶ provides access to the configuration store settings
-
directories
¶ Provides access to the server’s directories
-
jobs
¶ This resource is a collection of all the administrative jobs (asynchronous operations) created within your site. When operations that support asynchronous execution are run, the server creates a new job entry that can be queried for its current status and messages.
- Note: These administrative jobs are not the same as geoprocessing
- jobs.
-
licenses
¶ The licenses resource lists the current license level of ArcGIS Server and all authorized extensions. Contact Esri Customer Service if you have questions about license levels or expiration properties.
-
server_properties
¶ The Server has configuration parameters that can be govern some of its intricate behavior. The Server Properties resource is a container for such properties. These properties are available to all server objects and extensions through the server environment interface. The properties include:
- CacheSizeForSecureTileRequests - An integer that specifies the
- number of users whose token information will be cached. This increases the speed of tile retrieval for cached services. If not specified, the default cache size is 200,000. Both REST and SOAP services honor this property. You’ll need to manually restart ArcGIS Server in order for this change to take effect.
- DisableAdminDirectoryCache - Disables browser caching of the
- Administrator Directory pages. The default is false. To disable browser caching, set this property to true.
- disableIPLogging - When a possible cross-site request forgery
- (CSRF) attack is detected, the server logs a message containing the possible IP address of the attacker. If you do not want IP addresses listed in the logs, set this property to true. Also, HTTP request referrers are logged at FINE level by the REST and SOAP handlers unless this property is set to true.
- javaExtsBeginPort - Specifies a start port of the port range used
- for debugging Java server object extensions. Example: 8000
- javaExtsEndPort - Specifies an end port of the port range used for
- debugging Java server object extensions. Example: 8010
- localTempFolder - Defines the local folder on a machine that can
be used by GIS services and objects. If this property is not explicitly set, the services and objects will revert to using the system’s default temporary directory.
Note: If this property is used, you must create the temporary directory on every server machine in the site. Example: /tmp/arcgis.
- messageFormat - Defines the transmission protocol supported by
the services catalog in the server. Values: esriServiceCatalogMessageFormatBin,
esriServiceCatalogMessageFormatSoap, esriServiceCatalogMessageFormatSoapOrBin- messageVersion - Defines the version supported by the services
- catalog in the server. Example: esriArcGISVersion101
- PushIdentityToDatabase - Propogates the credentials of the logged
- -in user to make connections to an Oracle database. This property is only supported for use with Oracle databases. Values: true | false
- suspendDuration - Specifies the duration for which the ArcGIS
- service hosting processes should suspend at startup. This duration is specified in milliseconds. This is an optional property that takes effect when suspendServiceAtStartup is set to true. If unspecified and suspension of service at startup is requested, then the default suspend duration is 30 seconds. Example: 10000 (meaning 10 seconds)
- suspendServiceAtStartup - Suspends the ArcGIS service hosting
- processes at startup. This will enable attaching to those processes and debugging code that runs early in the lifecycle of server extensions soon after they are instantiated. Values: true | false
- uploadFileExtensionWhitelist - This specifies what files are
- allowed to be uploaded through the file upload API by identifying the allowable extensions. It is a list of comma separated extensions without dots. If this property is not specified a default list is used. This is the default list: soe, sd, sde, odc, csv, txt, zshp, kmz, and geodatabase.
Note: Updating this list overrides the default list completely. This means if you set this property to a subset of the default list then only those items in the subset will be accepted for upload. Example: sd, so, sde, odc.
- uploadItemInfoFileExtensionWhitelist - This specifies what files
- are allowed to be uploaded through the service iteminfo upload API by identifying the allowable extensions. It should be a list of comma separated extensions without dots. If this property is not specified a default list is used. This is the default list: xml, img, png, gif, jpg, jpeg, bmp.
Note: This list overrides the default list completely. This means if you set this property to a subset of the default list then only those items in the subset will be accepted for upload. Example: png, svg, gif, jpg, tiff, bmp.
- WebContextURL - Defines the web front end as seen by your users.
- Example: http://mycompany.com/gis
-
SiteManager¶
-
class
arcgis.gis.server.
SiteManager
(server, initialize=False)¶ Bases:
object
A site is a collection of server resources. This collection includes server machines that are installed with ArcGIS Server, including GIS services, data and so on. The site resource also lists the current version of the software. When you install ArcGIS Server on a server machine for the first time, you must create a new site. Subsequently, newer server machines can join your site and increase its computing power. Once a site is no longer required, you can delete the site, which will cause all of the resources to be cleaned up.
- Parameters:
server: arcgis.gis.server object
-
create
(username, password, config_store_connection, directories, cluster=None, logs_settings=None, run_async=False)¶ This is the first operation that you must invoke when you install ArcGIS Server for the first time. Creating a new site involves:
-Allocating a store to save the site configuration -Configuring the server machine and registering it with the site -Creating a new cluster configuration that includes the server
machine-Configuring server directories -Deploying the services that are marked to auto-deploy
Because of the sheer number of tasks, it usually takes a little while for this operation to complete. Once a site has been created, you can publish GIS services and deploy them to your server machines.
- Parameters:
- username - The name of the administrative account to be used by
- the site. This can be changed at a later stage.
password - The credentials of the administrative account. configStoreConnection - A JSON object representing the
connection to the configuration store. By default, the configuration store will be maintained in the ArcGIS Server installation directory.- directories - A JSON object representing a collection of server
- directories to create. By default, the server directories will be created locally.
- cluster - An optional cluster configuration. By default, the
- site will create a cluster called ‘default’ with the first available port numbers starting from 4004.
logsSettings - Optional log settings. runAsync - A flag to indicate if the operation needs to be run
asynchronously. Values: true | false
-
delete
()¶ Deletes the site configuration and releases all server resources. This is an unrecoverable operation. This operation is well suited for development or test servers that need to be cleaned up regularly. It can also be performed prior to uninstall. Use caution with this option because it deletes all services, settings, and other configurations. This operation performs the following tasks:
- Stops all server machines participating in the site. This in turn stops all GIS services hosted on the server machines.
- All services and cluster configurations are deleted.
- All server machines are unregistered from the site.
- All server machines are unregistered from the site.
- The configuration store is deleted.
-
export
(location=None)¶ Exports the site configuration to a location you specify as input to this operation.
- Parameters:
- location - A path to a folder accessible to the server where the
- exported site configuration will be written. If a location is not specified, the server writes the exported site configuration file to directory owned by the server and returns a virtual path (an HTTP URL) to that location from where it can be downloaded.
-
import_site
(location)¶ This operation imports a site configuration into the currently running site. Importing a site means replacing all site configurations (including GIS services, security configurations, and so on) of the currently running site with those contained in the site configuration file you supply as input. The input site configuration file can be obtained through the exportSite operation. This operation will restore all information included in the backup, as noted in exportSite. When it is complete, this operation returns a report as the response. You should review this report and fix any problems it lists to ensure your site is fully functioning again. The importSite operation lets you restore your site from a backup that you created using the exportSite operation.
- Parameters:
- location - A file path to an exported configuration or an ID
- referencing the stored configuration on the server.
-
join
(admin_url, username, password)¶ The Join Site operation is used to connect a server machine to an existing site. This is considered a ‘push’ mechanism, in which a server machine pushes its configuration to the site. For the operation to be successful, you need to provide an account with administrative privileges to the site. When an attempt is made to join a site, the site validates the administrative credentials, then returns connection information about its configuration store back to the server machine. The server machine then uses the connection information to work with the configuration store. If this is the first server machine in your site, use the Create Site operation instead.
- Parameters:
- admin_url - The site URL of the currently live site. This is
- typically the Administrator Directory URL of one of the server machines of a site.
username - The name of an administrative account for the site. password - The password of the administrative account.
-
properties
¶ returns the site
-
public_key
¶ gets the public key
-
upgrade
(run_async=False)¶ This is the first operation that must be invoked during an ArcGIS Server upgrade. Once the new software version has been installed and the setup has completed, this operation will be available. A successful run of this operation will complete the upgrade of ArcGIS Server.
caution If errors are returned with the upgrade operation, you must address the errors before you may continue. For example, if you encounter an error about an invalid license, you will need to re-authorize the software using a valid license and you may then retry this operation.
note This operation is available only when a server machine is currently being upgraded. It will not be available after a successful upgrade of a server machine.
- Paramters:
run_async: A flag to indicate if the operation needs to be run asynchronously. The default value is false.
DirectoryManager¶
-
class
arcgis.gis.server.
DirectoryManager
(system)¶ Bases:
object
A collection of all the server directories is listed under this resource. You can add a new directory using the Register Directory operation. You can then configure GIS services to use one or more of these directories. If you no longer need the server directory, you must remove the directory by using the Unregister Directory operation.
-
add
(name, physicalPath, directoryType, maxFileAge, cleanupMode='NONE', description=None)¶ Registers a new server directory. While registering the server directory, you can also specify the directory’s cleanup parameters
- Parameters:
name: The name of the server directory. physicalPath: The absolute physical path of the server directory. directoryType: The type of server directory. cleanupMode: Defines if files in the server directory needs to be cleaned up. maxFileAge: Defines how long a file in the directory needs to be kept before it is deleted. description: An optional description for the server directory.
-
all
¶ Server directories are used by GIS services as a location to output items such as map images, tile caches, and geoprocessing results. In addition, some directories contain configurations that power the GIS services.
-
edit_services_directory
(allowedOrigins, arcgis_com_map, arcgis_com_map_text, jsapi_arcgis, jsapi_arcgis_css, jsapi_arcgis_css2, jsapi_arcgis_sdk, serviceDirEnabled)¶ With this operation you can enable or disable the HTML view of ArcGIS REST API (also known as the Services Directory). You can also adjust the JavaScript and map viewer previews of services in the Services Directory so that they work with your own locally hosted JavaScript API and map viewer.
- Parameters:
allowedOrigins: Comma-separated list of URLs of domains allowed to make requests. * can be used to denote all domains. arcgis_com_map: URL of the map viewer application used for service previews. Defaults to the ArcGIS.com map viewer but could be used to point at your own Portal for ArcGIS map viewer. arcgis_com_map_text: jsapi_arcgis: The URL of the JavaScript API to use for service previews. Defaults to the online ArcGIS API for JavaScript, but could be pointed at your own locally-installed instance of the JavaScript API. jsapi_arcgis_css: CSS file associated with the ArcGIS API for JavaScript. Defaults to the online Dojo tundra.css. - :jsapi_arcgis_css2:Additional CSS file associated with the ArcGIS
- API for JavaScript. Defaults to the online esri.css.
jsapi_arcgis_sdk: URL of the ArcGIS API for JavaScript help. serviceDirEnabled: Flag to enable/disable the HTML view of the services directory.
-
get
(name)¶ Gets a single directory registered with ArcGIS Server
- Parameters:
name: name of the registered directory
-


npm is a package manager for node. You can use it to install and publish your node programs. It manages dependencies and does other cool stuff.
Not much here at the moment. Check out the git repository.
Want some swag!? Go get some! All profits go towards buying more swag to hand out at NodeJS meetups and incentivize contributors.
Hate swag!? Donate anyway! All profits go towards the npm marketing budget, and may be drawn upon to buy pizza when noders congregate.


WIDGET 7: Widgets must have child roles
menu
menu pass
menu pass
menu fail
tree
tree pass
tree hidden
tree fail
grid
grid pass
grid hidden
grid fail
grid pass
row fail


Galvanize Delivers
Home Page
Home Page
menu
Burger
Angus Beef, Gorgonzola, Bacon
$23
ADD TO CART
Fried Chicken
Old-Style Recipe
$28
ADD TO CART
Pizza
Fresh from our wood-fired oven
$17
ADD TO CART
Paella
Authentic & Amazing
$47
ADD TO CART
Ribs
Slow-cooked to perfection
$35
ADD TO CART
Spaghetti
¡Ciao Bella!
$19
ADD TO CART
Tacos
Fire-grilled Steak
$21
ADD TO CART
Ice Cream
Worth every penny
$12
ADD TO CART
Subtotal
$ 0.00
Tax
$ 0.00
Delivery Charge
$ 0.00
Convenience Fee
$ 0.00
Grand Total
$ 0.00
account_circle
Name
phone
Telephone
email
Email
location_city
Address
location_on
Zip Code
Place Order
send


#set( $text = {
"subject": "Your kit will be delivered very soon",
"salutation": "Dear {{participant_firstName}} {{participant_lastName}},",
"p1": "Your COVID-19 test will be delivered very soon.",
"p2": "When you receive it, it is important to collect your sample, complete your monthly survey, and return your test only Monday through Thursday (tests returned over the weekend will be discarded).",
"p3": "Do not collect your sample on a Friday, Saturday, or Sunday. More information about how to collect your sample is available on the TestBoston help page.",
"when_ready": "When you’re ready, please",
"p4": "Remember: collect your sample and return your kit Monday through Thursday!",
"click_here": "click here",
"to_update": "to log in to TestBoston and update your health symptoms.",
"contact": "If you don't receive your kit within 48 hours, or if you have any questions about the study, contact us:",
"closing": "Best regards,",
"study_team": "The TestBoston Study Team",
"footnote": "You are receiving this email because you have consented to participate in TestBoston. If you would no longer like to participate in this study, you may contact the TestBoston study staff to withdraw."
})
#parse("kit_arrived2.tmpl.html")