npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

aws-mock

v1.3.4

Published

Easily and automatically test essential AWS services with the language-agnostic aws-mock.

Downloads

771

Readme

aws-mock Build Status

  • Automated testing for AWS.

Used by:

TreeLogic Software Logo VMWare Logo

Overview

Easily test essential AWS services with the lightweight, very modular aws-mock. Works with official aws-sdk, api-tools and third-party tools. Completely and safely automates the testing process of AWS services in a mock EC2 environment, using http to expose the API.

Readily accessible: Ready-to-run examples included for NodeJS and Java. aws-mock is available as a package from npmjs.org and from maven.org.

Aws-mock currently features the following implemented interfaces of Amazon EC2:

  • describeImages
  • runInstances
  • stopInstances
  • startInstances
  • terminateInstances
  • describeInstances
  • describeVpcs
  • describeSecurityGroups
  • describeInternetGateways
  • describeRouteTables
  • describeVolumes
  • describeSubnets

CloudWatch:

  • getMetricStatistics

This mock can manage a huge amount of EC2 instances, making it super easy for you to test your applications.

aws-mock is a pure servlet web application, conforming to the protocols described in the WSDL defined by AWS. Contributions in any JVM-targeting language are welcome.

How It Works

Taking for example the ec2 interface that aws-mock supports (the ec2-endpoint mock), this mock processes Query Requests built by your client.

It then manages the internal mock EC2 instances as an emulation of the lifecycle of those in genuine EC2 (pending->running, stopping->stopped, terminated, etc). Cloudwatch mock to getMetricStatistics for EC2 instances.

In response it then returns an xml result body which is recognized by your client.

Note: At this time, the only interfaces that have been implemented are the ones listed above. Only essential data fields in the response body are filled.

Inside aws-mock, the mock EC2 instances can work in their own program threads and behave just like real ones. Thus, by extending aws-mock, it would be easy for you to add any custom behavior that you desire to your mock EC2 instances (e.g. insert 'agents' that send heartbeat pings to your EC2 cluster controller, etc). This will enable you to mock and test your EC2-based system more precisely.

For more information, please refer to the Technical Specifications.

Quick Start

git clone https://github.com/treelogic-swe/aws-mock.git
cd aws-mock
make start

(If you are not in a *nix environment, you may run ./gradlew integrationTomcatRun instead of make start)

That's all.

This will run a build that automatically downloads all dependencies and prepares the code for use, and then it will start a jetty server that runs aws-mock locally on your computer.

Now you are able to interact with your local, mock version of Amazon Web Services (though only EC2 for now), in your own client applications.

You can use AWS-SDK, or a number of other third-party client tools such as elasticfox.

To manage instances on mock EC2, just point to the custom EC2 endpoint as follows: http://localhost:8001/aws-mock/ec2-endpoint/ (equivalent to the official endpoint url https://ec2.us-west-1.amazonaws.com/)

For more usage instructions including how to extend aws-mock, please look into our full User's Guide.

For detailed specification and reference for those interfaces already available in aws-mock, here is a list of them: Implemented Requests and Responses.

To stop the mock server:

make stop

(If you are not in a *nix environment, you may run ./gradlew integrationTomcatStop instead of make stop)

API Documentation

Please find API documentation for all currently implemented interfaces at the link below. Don't worry about the word 'javadoc' – you don't have to write any Java, just pick your favorite JVM-targeting language (Clojure, Scala, JRuby, Jython, Groovy, etc.) and off you go. The aws-mock contributors commit to supporting Literate Programming in any JVM-targeting language you choose to use.

http://treelogic-swe.github.io/aws-mock/javadoc/

Tips

  • To build a war file for deployment, simply run make or ./gradlew war.
  • Initially there are no mock instances in mock EC2, so you need to run one or more new instances first.
  • Your client doesn't need to provide valid credentials since aws-mock skips the secretKey/accessKey check.
  • There are a few options in src/main/resources/aws-mock.properties to tune.
  • For Eclipse users, make eclipse-init or ./gradlew clean Eclipse eclipse will initialize the ready-to-import eclipse wtp project facets.

Your Contribution, in Any JVM-Targeting Language

Any contribution to aws-mock is strongly welcomed - including any adding of the unimplemented interfaces/data of EC2 and other mock of Amazon Web Services. If you find aws-mock helpful in working with your applications and have added features, we encourage you fork and send your pull requests to us! Bug reports are also very much appreciated.

NOTE: If your pull request contains any new features/implementations, you should provide test code that covers that too. In other words, we only accept pull reqeusts with tests.

Adding features to aws-mock is really easy, and you can do it in any JVM language you want. Please see the instructions.

License

aws-mock is released under MIT License.