Search code examples
ibm-cloud-infrastructure

User List and Ip List for Monitoring in SoftLayer


I got questions regarding Monitoring in Softlayer. How can I get IP Address List to add ? There are more IPs than primary ips. Is there API to get IPs for monitoring?

How can i get User List to notify ? The code I used brings no user.

    List<Agent> agentList = guest.getMonitoringAgents();

    for (Agent agent : agentList) {

        List<Customer> custList = agent.asService(client).getEligibleAlarmSubscibers();

}

Ip List User List


Solution

  • To get Ip Address list to add, you can try the following methods:

    [Updated] Here an example to get ip addresses by hardware

    package com.softlayer.api.NetworkMonitor;
    
    import com.softlayer.api.ApiClient;
    import com.softlayer.api.RestApiClient;
    import com.softlayer.api.service.Hardware;
    import com.softlayer.api.service.network.Monitor;
    import com.softlayer.api.service.network.subnet.IpAddress;
    
    /**
     * This script will return an arrayObject of objects containing the ipaddresses for hardware
     *
     * Important Manual Page:
     * http://sldn.softlayer.com/reference/services/SoftLayer_Network_Monitor/getIpAddressesByHardware
     * http://sldn.softlayer.com/reference/datatypes/SoftLayer_Network_Subnet_IpAddress
     *
     * @license <http://sldn.softlayer.com/article/License>
     * @authon SoftLayer Technologies, Inc. <sldn@softlayer.com>
     * @version 0.2.2
     */
    public class GetIpAddressesByHardware {
        /**
         * This is the constructor, is used to Get Ip Addresses By Hardware
         */
        public GetIpAddressesByHardware() {
            // Declare your SoftLayer username and apiKey
            String username = "set me";
            String apiKey = "set me";
    
            // Define Hardware identifier
            Long hardwareId = new Long(92862);
    
            // Create client
            ApiClient client = new RestApiClient().withCredentials(username, apiKey);
    
           Monitor.Service monitorService = Monitor.service(client);
    
            Hardware hardware = new Hardware();
            hardware.setId(hardwareId);
            try {
                for(IpAddress ipAddress : monitorService.getIpAddressesByHardware(hardware, ""))
                {
                    System.out.println("Ip Address: " + ipAddress.getIpAddress());
                }
    
    
            } catch (Exception e) {
                System.out.println("Error: " + e);
            }
        }
    
        /**
         * This is the main method which makes use of GetIpAddressesByHardware method.
         *
         * @param args
         * @return Nothing
         */
        public static void main(String[] args) {
            new GetIpAddressesByHardware();
        }
    
    
    }
    

    Regarding to: How can i get User List to notify ?

    The following methods will help with that:

    [Updated] Here an script using SoftLayer_Hardware_Server::getUsers

    package com.softlayer.api.HardwareServer;
    
    import com.softlayer.api.ApiClient;
    import com.softlayer.api.RestApiClient;
    import com.softlayer.api.service.hardware.Server;
    import com.softlayer.api.service.user.Customer;
    
    /**
     * This script retrieves a list of users that have access to this computing instance.
     *
     * Important Manual Page:
     * http://sldn.softlayer.com/reference/services/SoftLayer_Hardware_Server/getUsers
     * http://sldn.softlayer.com/reference/datatypes/SoftLayer_User_Customer
     *
     * @license <http://sldn.softlayer.com/article/License>
     * @authon SoftLayer Technologies, Inc. <sldn@softlayer.com>
     * @version 0.2.2
     */
    public class GetUsers {
        /**
         * This is the constructor, is used to Get Users from hardware
         */
        public GetUsers() {
            // Declare your SoftLayer username and apiKey
            String username = "set me";
            String apiKey = "set me";
    
            // Define Hardware identifier
            Long hardwareId = new Long(92862);
    
            // Create client
            ApiClient client = new RestApiClient().withCredentials(username, apiKey);
    
            Server.Service serverService = Server.service(client, hardwareId);
            try {
                for(Customer user : serverService.getUsers())
                {
                    System.out.println("Id: " + user.getId());
                    System.out.println("User: " + user.getLastName() + ", " + user.getFirstName() + "(" + user.getUsername() + ")");
                    System.out.println("----------------------------");
                }
            } catch (Exception e) {
                System.out.println("Error: " + e);
            }
        }
    
        /**
         * This is the main method which makes use of GetUsers method.
         *
         * @param args
         * @return Nothing
         */
        public static void main(String[] args) {
            new GetUsers();
        }
    
    
    }
    

    Here an script using SoftLayer_Virtual_Guest::getUsers:

    package Monitoring;
    
    import com.softlayer.api.ApiClient;
    import com.softlayer.api.RestApiClient;
    import com.softlayer.api.service.user.Customer;
    import com.softlayer.api.service.virtual.Guest;
    
    /**
     * This script retrieve a list of users that have access to this computing instance.
     *
     * Important Manual Page:
     * http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/getUsers
     * http://sldn.softlayer.com/reference/datatypes/SoftLayer_User_Customer
     *
     * @license <http://sldn.softlayer.com/article/License>
     * @authon SoftLayer Technologies, Inc. <sldn@softlayer.com>
     * @version 0.2.2
     */
    public class GetUserList {
        /**
         * This is the constructor, is used to Add users to notify
         */
        public GetUserList() {
            // Declare your SoftLayer username and apiKey
            String username = "set me";
            String apiKey = "set me";
    
            // Define the virtual guest id
            Long guestId = new Long(18697221);
    
            // Create client
            ApiClient client = new RestApiClient().withCredentials(username, apiKey);
    
            // Define SoftLayer_Virtual_Guest service
            Guest.Service guestService = Guest.service(client, guestId);
    
    
            try {
                for(Customer user : guestService.getUsers())
                {
                    System.out.println("Id: " + user.getId());
                    System.out.println("User: " + user.getLastName() + ", " + user.getFirstName() + "(" + user.getUsername() + ")");
                    System.out.println("----------------------------");
                }
    
            } catch (Exception e) {
                System.out.println("Error: " + e);
            }
        }
    
        /**
         * This is the main method which makes use of GetUserList method.
         *
         * @param args
         * @return Nothing
         */
        public static void main(String[] args) {
            new GetUserList();
        }
    }