Jump to content

EidolonHost

Members
  • Posts

    281
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by EidolonHost

  1. Hello Keiro .

     

    i will also help just need some time , now what you can do is something to design how the module should be ..

     

    field that shouldbe in Package

    fields that should be in admin side

    fields that should be in client side

     

    which field are mandatory and wich one is obligatory .

     

    type of fields (text , selectbox , checkbox, radio ...ect )

     

    and let the other work for me ;)

     

    I'm about to push a new copy of the script with the stuff that a dedicated server provider would need.

     

    At least, I think I've got it all... but if I didn't, it'll be trivial to add the stuff admin-side. Client-side, I'm still figuring out the logic.

     

    But I can tell you what I would personally need in a module.

     

    Admin-side, there would be the following fields I would need:

     

    1. Server ID # (also known as device id in this new copy)

    2. Server IP # (also known as device ip)

    3. Location

    4. Datacenter

     

    Clients should be able to set hostname, username other than root/Administrator if they don't want to use root/Administrator for Linux/Windows based systems, in addition to choosing what type of server it needs to be.

     

    As for fields that should be in a Package... that's usually dependent on the individual using the module.

     

    I think I've got the best set-up that'd work as a module right now, but... there is that slight bit of uncertainty, as if I might be missing something.

     

    today i get time to see the module structure and code, i found it the same as the solusvm module , and there are just some change . this way we can't work with a solid code, iprefer begin from the scratch .

    i will search my files for the old module and try to revive it again .

     

    Yeah, as said in the original post, it's based on the SolusVM module. Eventually we'll probably migrate away from the SolusVM code to our own module code.

     

    For now, the SolusVM module gets us very close to what a dedicated server module should be. It gives me an opportunity to learn how the module should work and how I might want to write one from scratch.

     

    Give me about 5 minutes and I'll upload a new updated copy of the module to Github.

  2. Yeah, adding conditional logic is an absolute necessity for this module... I realized this when I was trying to mess with config options.

     

    Obviously, since conditional logic won't be coming until much later... this'll be fun. Hopefully we'll be able to make it work here until it can be added to the core.

     

    So... while I said I wouldn't add it, I'm now changing my position to: I'll add it... but not directly. That is, others can add conditional logic support to this module. I myself have basically 0 idea how one would even implement conditional logic here.

     

    So look for that to come in a future module update.

  3. So last night, while I was in the shower (of course...) I was thinking about the module for some reason and had a thought,

     

    "That username and root field in Add Server screen... dude, you know that's the wrong place for it. Put Datacenter, Location, Rack as the options for the Add Server screen in its place!"

     

    And thus, an eureka moment was born. So, I will be adding those options into DSM shortly and pushing it to Github. Shouldn't be overly difficult to add, it's simply a text replacement and slight modification of the language file to account for the change.

     

    The Rack, row field will be added to the service side... at least, when I figure out how to do that for the admin-side because those're basically admin-only functions. But the Datacenter and Location field will be added to the Add Server screen. I'll update the screenshots after I do that to ensure people don't get confused.

     

    Edit:

     

    Dammit, I completely and utterly broke it. I'll have to rebuild it again from the last working copy I have. Thank goodness for version control.

  4. Great Work @keiro :)

    Thanks! Still a bit to go before I'll call it done. I didn't think I'd get the issues worked out fairly quickly as I expected to... maybe I'm finally starting to really understand Blesta and, to a degree, CodeIgniter code.

    Funnily enough, working on CodeIgniter code actually helped me to understand Blesta more easily. But I'm afraid I'm still a newbie when it comes to actually working with PHP and modules like this.

  5. This is great, thank you so much! Any chance of getting the other items (HDDs, RAID, Control Panels, IPs) added? It'll offer me an incentive to try Blesta. :)

    The items you're asking about can be configured with Configurable Options.

    See the documentation for Configurable Options for more detail.

    Best place to do this. Sorry, but I'm not going to be adding those options to the module.

    I'll update the readme.md on Github and in the thread to include a link back to the Configurable Options document.

    Edit: @Max: That's unfortunate but understandable.

  6. Sorry but I'm not a Blesta user, I'm basically checking the demo page after each update. Is your module offering the possibility to add a server, with a specific configuration, as a product? Because if so, that's what most of us need. You add the product (server), add it to a group and sell it. When the user orders, it has to select each option from the ones you've previously configured. Is this the case of the addon you are currently writing?

    That's correct.

    If you look at KIHWUmm.png

    ... notice the Description section?

    And the Configurable Options?

    This is indeed the case for the module I'm working on.

    I've been working on getting the module to work properly for each of the actions you'd expect to do, so I apologize for the lack of images that show specific actions at work because I don't have it all working just yet. As soon as it all works, I will be updating the last 3 images and adding more images showing each action with all the options filled in, just as you normally would expect.

  7. My exact point. Most startups collocate or rent servers from DCs or other bigger providers. So I don't think NOC-PS is a top-priority, but at least basic functions. Don't get me wrong, having something advanced would be really nice, but at least let's have something basic. :)

    That's the idea with my module. That's why I specifically stated what the module can and cannot do.

    Of course, if people want to have the other functionality added, that's fine by me. But by and large, this module is meant to simply let you create dedicated/colo servers and assign them to clients so they can see the details and the like.

    There's no actual ability to manage the server from the module.

    Edit: @Ravza, my question of the reseller functionality was directed at Max. :P I apologize for the unintentional confusion.

  8. Do note that our NOC-PS software is only suitable for providers that have their own servers and network, and not for resellers that resell servers from another provider.

    I figured. Or well, those that have their own servers and network within a provider's space, such as colo customers.

    Still, I think something like this would be great. I wouldn't dare try implementing it, myself though... I'm just not familiar enough with everything. The only reason I even made the fast progress I did was because I was experimenting with things and basically figured out what worked and what didn't.

    I've yet to actually add code to it... well, other than the Notes code that I cribbed from the InterWorx module.

    Wait a minute, don't you have reseller functionality?

  9. WOW this is GREAT!!! I'll keep posting on the other thread.

    Glad you like.

    I've pushed v0.0.2 to Github. Simply hit up the original post for the github link and download the latest version via the Download Zip button.

    You'll be able to add servers and the like... you just can't add them to client accounts, yet. That results in a fatal error. I'm still working on resolving this one.

  10. Version 0.0.2 has been pushed to Github!.

    Changelog:

    • 1. Corrected Add/Edit Package issues. You are now able to add Dedicated Servers as a package in the Package section. 
    • 2. Removed most of node, plan and template code. Some of the code still remains, as I am not sure what the equivalent or replacement code would be. I'd need to have someone more experienced look at the code. Preferably the Blesta devs, if at all possible.
    Issues
    • 1. Currently unable to add new service for dedicated servers to client's account via admin or log in as client functions. Results in either a white page or an error. Currently attempting to reproduce.
    • 2. Still trying to figure out how to safely remove the remains of the code. Particularly the API code. It's not needed here for now. Heh.
    Edit: Ah right, I remember now.

    The issue is as follows:

     

    Oh noes!
    
    Undefined property: stdClass::$user_id on line 226 in /home/admin/public_html/testdomain.com/billing/components/modules/dsm/dsm.php
    
    There's another issue here. If I try removing $user_id, this results in another Oh Noes! error. If I fix that one as well, it results in a white page.
  11. I'm so happy that I started this thread! :)

     

    What I really think we need for the moment is at least a basic module, like the one Keiro is building. Sure, having more complex stuff like auto OS install, IPAM, graphs, reboots etc is nice and useful, but - for startups like me - at least a basic DB is more than enough.

     

    I don't know what's the official position of Blesta right now. Do they usually prefer to keep things separated in modules/addons, or assimilate stuff in the Blesta core?

    I think what I'll do later is see if it's possible to work with other module devs to call other modules for OS reloads.

    Maybe NOC-PS's module? And if I recall correctly, but I may be misremembering, Blesta does have an IPAM module of a sort... but I don't use it.

  12. Great work, I really appreciate your effort!

     

    As activa also specified, this is a great starting point but it kinda needs a coupe of options:

    • HDDs: here you can make a selector from 1 to...infinity? Or maybe let the user insert the no. of HDDs? I'm mentioning that because I had cases in which the clients asked for...mmm...10-12 HDDs. Sure, you can make a selector from 1 to maybe 48?
    • RAID: here things get kinda complicated. RAID should be available only in "combinations" with the currently selected HDDs. You can't make a RAID10 with 3 HDDs, so that option should be unavailable for 3 HDDs. Still, if this is a big chore, than I think it's best just to specify all RAID configurations and the client will select its own option;
    • RAM: same as HDDs, most users have max 128GB but hey...1TB of RAM is not so hard to find nowadays;
    • Ethernet port: in my case the provider offers me 300mbps per server. Not 100mbps, not 1gbps, but 300mbps. So maybe you should make a selector form 10mbps to 1gbps?
    • Control Panel: maybe you can let each user insert it's own control panels? Personally I sell only cPanel, Plesk, Webmin and SolusVM, but I know a lot of guys who also sell more "exotic" stuff;
    • IPs: this is kinda mandatory. I don't think you should start coding an IPAM (obviously it would be *really* handy!) but at least give the option specify what /class are you selling to the client, and then let the sales/deployment guy insert the IPs manually. Right now we're doing this with WHMCS (manually inserting IPs), it's not the best option but it was *very, very* important and handy, as most clients just say "we have a problem with the server with IP 123.456"; so having a fast way to search for IPs (even with no IPAM) is a really useful thing.
    I have mediocre HTML / CSS skills (I'm the sales guy) but if I can help you with anything please let me know.

     

    Again, I really appreciate your effort and dedication!

    My thanks.

    Again, this is possible with Config Options. Since this is based on the SolusVM module, you should be able to add the configurable options with the specifics you desire.

    However, conditional logic won't be available until much later, as per Paul's word.

    Also, will be releasing version 0.0.2 fixing the Add and Edit Package issue.

    Remaining issue at present is successfully adding it to a client's account. I'll post the issue I'm having with it in the next post shortly.

  13. nice work , i don't want to minimize your efforts but this is my real opinion about this module ;

     

    this module with that functions is less usable , and is less strong than the universal module .

     

    BUT to convert this module to a unique and powerful module is to add to it the CONDITIONAL LOGIC for components .

    HOW ? add fields to package that let users select thier wanted :

     - OS (select option)

     - HDD 1

     - HDD 2

     - HDD 3

     - HDD 4

     - RAM (2,4,6,8,12,16,24,32, ...ect)

     - Ethernet Port ( 100Mp/1Gp)

     - RAID (0,1,5,10 ...) depend of selected HDD .

     - Control Panel (Cpanel , Plesk , DA, , Webmin , Inerwork...)

     - IPs (4,8,16,32,64,128,256 ...)

     

    We can help you in this, just we need to colobarate in this work all together , my BOSS (is a user here , AKA Naja7host) has a portfolio for this to do it , i have see a mockup logic for this in his office already .

     

    Finally , this is a first step to the real Dedicated Server Module .

    This is already possible, at least to a degree, by using Config Options. Conditional Logic won't be available in the core until much later, I think, based on Paul's word.

    Preliminary task for config option conditionals CORE-1708. No ETA.

    If you want to work on this module, I'm perfectly happy to do so. I submit all of my code to Github for version control and to let others have an easy view of the code.

  14. This thread was created to discuss how the module works, code-wise. You may submit code to be merged into DSM with proper credits to you in a CREDITS file.

    This module was based on SolusVM module from Blesta's devs. As such, there are lots of SolusVM functionality still in this script. I'm working on removing them and cleaning up the module. I'm still wrapping my head around the validation rules that're presenting a major stumbling block.

    I'd be happy to have people submit code via Github and help with testing of the module via a development Blesta copy that they have.

    GITHUB LINK: DSM, also known as Dedicated Server Module

    THIS IS NOT SUITABLE FOR PRODUCTION USE YET

    What this module can do:

    1. Create a Dedicated/Colo Server Group

    2. Create servers for either group

    3. Edit servers for either group

    4. Delete servers for either group

    5. Assign servers to customers.

    What this module CANNOT do:

    1. OS Reloads

    2. IP Management for Dedicated/Colos

    What needs work and may not work reliably 100%

    1. Adding client's package, either via log in as client by admin, or via admin backend.

    2. Editing client's package, either via log in as client by admin, or via admin backend.

    What DOES work and works reliably 100%

    1. Installing module

    2. Uninstalling module

    3. Editing module details

    4. Adding Server as a ackage

    5. Editing Server as a package

    6. Adding Servers via the Manage section of the module

    7. Editing Servers via the Manage section of the module

    Screenshots galore!

    http://imgur.com/gallery/l63Wq

    Documentation

    Since this module makes use of Configurable Options, please see the Configurable Options for further details on how to add HDD, RAM, CPU, etc to your packages when configuring this module.

    Comments and Thoughts on Module

    I'm sure there will be questions about when this module will be ready for production use.

    I do not know when the module will be ready for production use, but I'm doing my best to get it into production ready state. With that said...

    I'm not a professional module developer. Thusly, if you spot issues and the like in the module, please either post about it here or open a Github issue and I will get right to work on fixing the issue or ask for help in fixing the issue.

    Also, my response times will be somewhat slow for some time, until July at the latest, as I don't have reliable internet access right now. So keep that in mind!

    Right now, I'm working on figuring out how the validation rules work. And for the love of god, I need to figure out how to safely remove the nodeid crap. It's making it difficult to reliably edit and add servers. I also have not yet figured out how to ensure the password is hashed and encrypted, as seen in screenshot #5 :U

    Is it even a good idea to have it set that way? Maybe use an SSH key for Linux servers instead? I have no idea what the equivalent is for Windows Servers and stuff, so... suggestions on this would be great. Also, as far as the Type option for the servers go, I was thinking of moving it to the Add Server screen so that the admin can set it as Windows or Linux when adding the server to be assigned to a customer.

    Thoughts on that?

  15. Nice, I look forward to you getting the description showing to clients as well.

    Gonna install this now and test it out, could be the answer to my massive woes until EasyDCIM has billing integration with Blesta completed.

    Please don't install it on a production Blesta install.

    Some things work, most do not. I'm still working on fixing the things that aren't working.

    The descriptions should show fine to the client. If you're familiar with the way packages are set up, you know what I mean.

  16. Looks like something they made themselves.

     

     

     

    That they call the Ubersmith API internally to generate the bandwidth graph you asked for, and pass it thru, does not mean you are using the Ubersmith API.

    Ah, gotcha. Alrighty, I wasn't entirely sure. I was going by what they stated. Again... I did say I didn't look too closely at the code at the time.

    In that case... I suppose I best talk to Ubersmith to ensure we do have a Ubersmith module... this will be fun.

  17. Have you found a way to properly display the "base spec" or "description" of the package within the service itself on both admin and client sides then relate/tie in any config options/addons so that there is finally a GOOD summary of WHAT the client actually has (hardware config/software/addons/etc) within the specific service "details"? (instead of this "1 package fits all and all you get to see is the package name" lameness...)

     

    Also a way to reference the service by a server hostname (visible by client and admin)?

    You should be able to display the "base specs" or description of the package.

    Give me a bit to screenshot both of the items you're asking about. The module lets you do this.

    I didn't think to include the screenshots for both, so... my fault. Give me roughly 5 minutes and check back. You'll see the screenshots here and in Github.

    I have not gotten to the point where a client can see the service package yet... I'm still figuring out how to rework the SolusVM module.

    But this should be basically similar to where you can see SolusVM package details in the client dashboard.

    Edit, as promised!:

    ca2zGVH.png

    KIHWUmm.png

    Edit2: Note the Description field?

    Edit3: THIS IS NOT PRODUCTION READY! THIS IS ALPHA CODE! USE AT YOUR OWN RISK!

  18. Don't think they extended it, but added something on top.

    As in: you <-> Quadranet API <-> Ubersmith API / other backend systems for the action requested.

     

    I have my doubts your module is talking to Ubersmith directly at all.

    You check out QuadraNET's API? It's here. They stated themselves directly to me via ticket that they use Ubersmith's APIs. The IP functions... they're probably what you stated.

     

    Did you make it clear to them that you want to write a module that CUSTOMERS from providers that run Ubersmith can use?

    As opposed to a module for providers running Ubersmith themselves?

    Yes. They stated they were happy to install and provide the stuff at no charge(I may be misremembering from the e-mail w/ Ubersmith) as long as this was the case.

    In the end though, I decided to not maintain a Ubersmith install for development purposes.

  19. Wonder if that isn't something Quadranet added on top, rather than normal Ubersmith functionality.

    Things like (null) routing do not exist in their public API documentation

    And IP assignment used to cover the administrative part only (marking them in-use in the database), rather than the technical part (configuring router, so that packets end up at the right server).

     

     Hmm... that could very well be the case. I know you can extend Ubersmith API functionality to a degree. I wouldn't be surprised if that's what they did. We actually did talk with Ubersmith about having a development copy of Ubersmith installed so we could work on the Ubersmith API module for general use.

     

    But I think we'll just have ModulesBakery set the IP functions to be optional and not required from the admin side. Because clearly that's going to take some serious work to get the IP functions to work for anything other than Ubersmith managing the IP functions. That way people who want to use the Ubersmith/Blesta module, can do so without having to go with QuadraNET like we did for our colocation and servers. I didn't realize this was not part of Ubersmith's API documentation as I didn't look entirely too closely at the documentation... I know, I know, bad of me to do that.

     

    WHMCS did not bother to document their SQL helper functions until recently, and PDO was not guaranteed to be available on the average WHMCS installation either in the past.

    So practically all older third-party modules call mysql_query directly.

    Well... that explains a lot. That makes obvious sense. Still, a bit of an ouch, either way.

×
×
  • Create New...