Published Solutions
-
Why are my package's description and name missing in CCP on Home tab?
Original Publishing Date: 2020-01-22 Symptoms I am developing a SaaS APS application and I want to see the name and description of my package on the Home tab in CCP. However, this information is not shown. Cause This data is only shown when there are entry point links available for the package. Resolution Define entry points for the services that are included in your package. More information: APS documentation. Internal content
-
How can I import the same APS package twice to Odin Service Automation?
Original Publishing Date: 2020-01-22 Problem I want to create a separate application using the code I already have for another package but slightly different. How can I install both packages on the same Odin Service Automation installation? Resolution There are two things that must be unique in Odin Service Automation: Application id Type ids To create a new branch of your application, change both application id and references to type ids. If you use the same namespace consistently through your application it's easy to do. For example this application uses namespace http://myweatherdemo.com/intro application id: http://myweatherdemo.com/intro type ids: http://myweatherdemo.com/intro/application/1.0 http://myweatherdemo.com/intro/subscription_service/1.0 If you want to create a branch with one additional fix but you do not want to uninstall previous version, use a new tag and apply it consistently to all the types. These files have intro in type or application id: APP-META.xml: http://myweatherdemo.com/intro APP-META.xml: myweatherdemo-intro APP-META.xml: scripts/subscription_service.php: * @type("http://myweatherdemo.com/intro/subscription_service/1.0") scripts/subscription_service.php: * @link("http://myweatherdemo.com/intro/application/1.0") scripts/application.php: * @type("http://myweatherdemo.com/intro/application/1.0") scripts/application.php: * @link("http://myweatherdemo.com/intro/subscription_service/1.0[]") Use 'search and replace' feature in your editor to replace all occurrences of intro with intro_fix2. On Linux or OS X you can use sed utility as well: find . -type f -exec sed -i 's/intro/fix2/g' {} \; Internal content
-
How to design service upgrades/downgrades in an APS package
Original Publishing Date: 2020-01-22 Problem It is needed to design application so that it supports upgrades/downgrades of some service (usually subscription type). Resolution The best way is to introduce application resource under top-service: License Type Free Basic Pro Subscription Type Subscription Type and point it via limiting-setting to a setting with type string: Such scenario will require specific environment configuration which should be described in deployment guide: [Operations Automation] Create Resource Types: based on 'Application' Resource Class based on 'Application Resource (KB)' Resource Class if your application has any other resources create them as well [Operations Automation] Create Service Template with Resource Types created on previous step. [Business Automation] Create new Resource Category ( Product Director > Resource Manager > Resource Categories), 'Webshop Display Type' should be 'Radio Button'. [Business Automation] Create a Composite Resource (Product Director > Resource Manager > Resource) for each choice (Free/Basic/Pro): Name will be displayed to user during switch, choose something like 'APPLICATION_NAME Free' Resource category created on step 3 Unit of Measure - unit Type - Composite Resource Then navigate to 'Included Resources' in created composite resource > 'Add New Included Resource', find the resource you created on step 1 (based on 'Application Resource (KB)' Resource Class), specify amount, 1 to create Resource for 'Free' Repeat the steps to create Composite Resources for Basic and Pro, the values should be: Basic: 2, Pro: 3 Create Service Plan and add Resource Rates for composite resources created on step 4, check "Show in CP" and "Show in Store" for all resource rates. To test the setup create an order for a customer, install application, navigate to Account > Buy Additional Resources, you should see a list of choices. NOTE: Redefining settings from resources in sub-services does not work, such resources need to be used in top-service only. If resource type based on class application is changed during plan change existing application will be unprovisionined (configure remove) and provisioned anew (configure install) if auto-provisioning is enabled. It happens if plans are based on different service templates containing different resource types, even if their settings are identical. Operations Automation treats them different and will uninstall instance during such change Internal content Link on internal Article
-
[POA basics] Tasks.
Original Publishing Date: 2020-01-22 Problem I'm an APS developer, how does POA handle requests to my application back-end, how does it execute application provisioning scripts? Where can I see if provisioning/reconfiguration/unprovisioning request finished successfully? Resolution POA has asynchronous multi-threading provisioning system, this means that all tasks are queued and processed using first in - first out principle. Asynchronous: there is a Task Manager where provider can check tasks statuses and troubleshoot possible problems (in POA 5.5 it's located in Operations > Tasks) Multi-threading: tasks are processed in multiple independent queues for example tasks to provide FTP access on a domain are processed in one queue and tasks to install application instance go into another queue. Tasks in one queue are processed consequentially based on their task id, tasks with lower id are processed first. Tasks properties Tasks lifecycle APS tasks types Internal content Link on internal Article
-
DNS issues after connecting to sandbox VPN on Mac OS
Original Publishing Date: 2020-01-22 Symptoms After establishing VPN connection to the APS2 sandbox on Mac OS using Tunnelblick you can access hosts via IP addresses but DNS is unstable, sometimes it works, but mostly it does not. Cause Certain versions of Tunnelblick can cause such DNS issues. Resolution We have a recommended version of Tunnelblick that does not have this issue with some installation instructions available here. You can also try alternative VPN clients for Mac OS, like Viscosity. Internal content Link on internal Article
-
[APS1 to APS2] What's the analogue for Global Settings in APS2 and how it should be implemented?
Original Publishing Date: 2020-01-22 Symptoms I need to migrate an existing APS1 application to APS2 but cannot find how to implement Global Settings to share common settings between all packages, how do I do it in APS2? Resolution Resource model was changed in APS2. APS1: There is a resource type with Global Settings based on Resouce Class 'Application', this is a main service provided to a customer via Service Template/Service plan. APS2: provider owns an instance of a service that implements http://www.aps-standard.org/ui/application (it can be found in Provider Control Panel) resource type based on class 'Application Service Reference' is created for this instance and included in service templates to pass these values main customer service that plugs in to http://www.aps-standard.org/ui/service should have a relation to this service Documentation Basic explanation of globals. Basic package with globals. Internal content
-
[APS] [docker] Is it possible to change applicationPort in deploment.xml file?
Original Publishing Date: 2020-01-22 Question I am using the guide https://doc.apsstandard.org/7.1/apps/proc/event/deploy/ to create a docker image. Is it possible to change applicationPort and applicationUrlPath in deployment.xml file to something else? Answer Yes, it can be done, but it is also necessary to change these values in all other files in docker-image folder where it is mentioned. In case of standard image applicationPort should be also changed here: [root@endpoint ~]# grep -ri 1443 ./* ./deploy-image/etc/httpd/conf.d/aps-php-runtime.conf:Listen 1443 ./deploy-image/etc/httpd/conf.d/aps-php-runtime.conf: ./deploy-image/Dockerfile:EXPOSE 1443 applicationUrlPath should be changed in one file: ./deploy-image/etc/httpd/conf.d/aps-php-runtime.conf.d/endpoint.conf Internal content
-
Applications service entry point is not visible in CCP
Original Publishing Date: 2020-01-22 Symptoms Entry point for service is configured according to specification, but absent in CCP. Entry point URL contains variables. Cause Entry point is hidden from CCP whenever it contains invalid URL. This can happen for various reasons: dst attribute contains a variable which is either not defined or defined to value which makes whole dst an invalid URL. dst attribute contains a variable and its value is defined to invalid URL in APP-META.xml. dst attribute is defined to invalid URL. Resolution You need to make sure that dst attribute evaluates to a valid URL (with all its variables). Common mistakes include: Login domain.com/login Here, the link will only be shown if f_entry setting has a value which is a valid URL (gets it from script or it is defined globally). If f_entry evaluates to empty string, domain.com/login will be used as dst and will be hidden because it is an invalid URL (missing http:// or https://). Internal content
-
Unable to fetch information about user's databases
Original Publishing Date: 2020-01-22 Symptoms I am trying to fetch information about databases using database types: http://doc.apsstandard.org/spec/types/infrastructure/database/ Using code like this: var userdbs = new Store({ apsType: 'http://parallels.com/aps/types/pa/database/mysql/1.0', target: "/aps/2/resources/" }); when(userdbs.query(), function(dbs) { console.log('user db:', dbs) }); But every time I do this, an empty Array comes back even though user has MySQL databases on his account. Cause Software issue with ID: APS-16920 prevents database resources from propagating to APS bus properly. Resolution There is no way to provide workaround as POA API does not have method to fetch information about databases. Note: This issue manifests for any kind of databases, not just MySQL. Internal content Link on internal Article
-
[POA basics] [Tasks] Tasks properties
Original Publishing Date: 2020-01-22 Problem In Operations > Tasks I see a list of tasks with several properties, can I use this information in a way that would benefit me? Resolution Each task has the following properties: ID sequenced internal number, id is assigned during task creation so the tasks with lower ids were created first. Name Task name, usually contains a short description of the operation it performs. Started/Finished When the task was started/finished (for tasks in status other than 'Unprocessed') or when the task should be started for tasks in 'Unprocessed' status. Queue name A batch of tasks that depend on each other and need to be processed consequentially, usually queue name points out why the tasks are grouped in one queue, for example: aps_application_instance18 subscription_id16 - tasks to provision/configure/unprovision instance 18 in subscription 16 Subscription ID Useful to filter all tasks for a subscription in search. Status Task status, more on tasks lifecycle here. Internal content