Categorygithub.com/mongodb-labs/pcgc
module
0.1.0
Repository: https://github.com/mongodb-labs/pcgc.git
Documentation: pkg.go.dev

# README

MongoDB Private Cloud Golang Client

Build Status

An HTTP client for Ops Manager and Cloud Manager Public API endpoints.

This project is currently in development and is not yet ready for production use.

This library is licensed under the terms of the Apache License, Version 2.0.

Desired feature set for release v0.1.0

  • Register the first user
  • Implement digest authentication (not available in Go's http client)
  • Create a project
  • Create an agent API key
  • Retrieve the automation config
  • Get all agents in a Project by type
  • Patch the automation config: update Deployments
  • Merge an existing automation config with new changes (e.g. Process)
  • Wait for goal state
  • Enable monitoring: edit AutomationCluster and enable monitoring (add a VersionHostnamePair)
      {
          "monitoringVersions": [{
              "name": "7.2.0.488-1",
              "hostname": "hostname"
          }]
      }
    
  • Deploy a standalone (insert a new Process into AutomationCluster)
      {
            "cluster": {
                "processes": [
                    {
                        "name": "hostname-27017_1",
                        "processType": "mongod",
                        "version": "4.0.10",
                        "authSchemaVersion": 5,
                        "featureCompatibilityVersion": "4.0",
                        "disabled": false,
                        "manualMode": false,
                        "hostname": "hostname",
                        "args2_6": {
                            "net": {
                                "port": 27017
                            },
                            "storage": {
                                "dbPath": "/data"
                            },
                            "systemLog": {
                                "destination": "file",
                                "path": "/data/mongodb.log"
                            }
                        },
                        "logRotate": {
                            "sizeThresholdMB": 1000,
                            "timeThresholdHrs": 24
                        }
                    }
                ],
            "state": "DRAFT"
        }
      }
    

Setting up the development environment

Pull requests are always welcome! Please read our contributor guide before starting any work.

The steps below should help you get started. They have been tested on MacOS, but should work on Linux systems as well (with minor adaptations.)

  1. Install GO (1.13+)
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh

Ensure $GOROOT/bin is in your path.

  1. Install the linting tools
# GoLint
make setup

  1. Install the git hooks, to automatically fix linting issues and flag any errors

make link-git-hooks

# Packages

No description provided by the author
No description provided by the author