GithubHelp home page GithubHelp logo

nextcloud-charms's Introduction

nextcloud-charms

Master branch build: CircleCI

nextcloud-charms's People

Contributors

erik78se avatar joakimnyman avatar maharacha avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

nextcloud-charms's Issues

Don't have nextcloud present weird states when installing

When nextcloud is still in "installation" mode, prevent uptate-status hook from presenting weird state information. Instead just don't do anything while installation is not complete.

Prevent update-status from presenting incorrect state information when still in installation mode.

In function:

def _on_update_status(self, event):

Create python module for functions

Move all logics from the charm events/hooks into a separate library to have the events be very clean and separated from the charm logics.

utils.py for example...

Error when deploying the nextcloud charm and relating to PostgreSQL charm

I was trying to deploy the nextcloud charm using those instructions, but couldn’t manage to make it work.

I changed the deploy commands a little bit (due to the changes in the PG charm channels and that the nextcloud charm is available only on the edge channel):

juju add-model my-nextcloud
juju model-config default-series=focal
juju deploy postgresql --channel latest/stable
juju deploy nextcloud --channel latest/edge
juju relate nextcloud:db postgresql:db

The error that I received was the following:

unit-nextcloud-0: 13:05:24 ERROR unit.nextcloud/0.juju-log Uncaught exception while in charm         code:
Traceback (most recent call last):
  File "./src/charm.py", line 596, in <module>
    main(NextcloudCharm)
  File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/main.py", line 434, in main
    framework.reemit()
  File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/framework.py", line 840, in reemit
    self._reemit()
  File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/framework.py", line 919, in _reemit
    custom_handler(event)
  File "./src/charm.py", line 291, in _on_start
    self._on_update_status(event)
  File "./src/charm.py", line 455, in _on_update_status
    self._checkLogConfigDiff()
  File "./src/charm.py", line 589, in _checkLogConfigDiff
    if cluster_rel.data[self.app]['nextcloud_config'] == str(nextcloud_config):
  File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/model.py", line 1493, in __getitem__
    return super().__getitem__(key)
  File "/var/lib/juju/agents/unit-nextcloud-0/charm/venv/ops/model.py", line 695, in __getitem__
    return self._data[key]
KeyError: 'nextcloud_config'
unit-nextcloud-0: 13:05:24 ERROR juju.worker.uniter.operation hook "update-status" (via hook     dispatching script: dispatch) failed: exit status 1

Juju version: 2.9.42

auto-create bucket using ceph

Log from nextcloud (logging in UI)

Exception: Creation of bucket "nextcloud" failed. Error executing "CreateBucket" on "http://13.51.6.243/nextcloud"; AWS HTTP error: Client error: `PUT http://13.51.6.243/nextcloud` resulted in a `400 Bad Request` response: <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidLocationConstraint</Code><Message>The specified location-const (truncated...) InvalidLocationConstraint (client): The specified location-constraint is not valid - <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidLocationConstraint</Code><Message>The specified location-constraint is not valid</Message><BucketName>nextcloud</BucketName><RequestId>tx00000000000000000001e-00601868da-11dc-default</RequestId><HostId>11dc-default-default</HostId></Error>

Move the old charm README over to the new repo

The old README is fairly good and contains a few example.

Needs some more love aswell along with examples. Possibly with bundles to reflect better what people actually do.

  • Backup routines.
  • Restore routines.
  • Upgrades.
  • Relations to storage etc.
  • Monitoring
  • etc.

Create occ class

Interacting with "occ" command is common and that functionality can be moved to its own class, dealing with occ commands. It will bloat the main code less and keep that separate and nice.

Create a new "nextcloud-private"

The "nextcloud-private" should contain a more limited subset of functionalities that suites a smaller instance of nextcloud.

  • 1 node
  • support for local juju storage.
  • etc.

support focal

Add support for ubuntu focal.

  • new version for php etc.

Support LDAP for user management

There is a charmed LDAP server. We should support LDAP for users in nextcloud.

Further down, also support for Active Directory.

Create a feature list for the two different charms

Document what we include in the different charms:

==== nextcloud-private ====
Supported:

  • Support for single instance
  • Support for redis singleton
  • Support for website http interface (ssl-termination)
  • Support for postgresql database
  • Support for juju storage [not yet implemented]
    ...
    Not supported:
  • Scale out of nextcloud server
  • Backend storage (CEPH or NFS)
  • Redis cluster
  • etc.

==== nextcloud-pro ====
Supported:

  • Support for scale out (n-servers)
  • Support for redis cluster [not yet implemented]
  • Support for mysql [Not yet implemented]
  • Support for backend storage (CEPH, NFS) [Not yet implemented]

Not supported:

  • ...

Detect when database already exist since it will not recreate it

If you unrelate nextcloud with postgresql.
.... and relate again a new unit...

Nextcloud initialization will fail since/if the database exist already.

What should happen is that we detect this situation and ask that the database is empty...

Figure out how to re-initialize ? .... from backup.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.